From 379388673da6e6fb867d957b81e0733b6efd60e6 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 12 Feb 2016 13:09:35 +0200 Subject: Add a Python library for making IMPLEMENTS --- yarnstep.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 yarnstep.py (limited to 'yarnstep.py') diff --git a/yarnstep.py b/yarnstep.py new file mode 100644 index 0000000..1935cc6 --- /dev/null +++ b/yarnstep.py @@ -0,0 +1,60 @@ +# yarnstep.py -- Python code for making yarn IMPLEMENTS sections nicer +# +# This is meant to be imported, not used with yarn --shell-library. +# +# Copyright 2016 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# =*= License: GPL-3+ =*= + + +import os + +import cliapp + + +_next_match = 1 +def get_next_match(): + global _next_match + name = 'MATCH_{}'.format(_next_match) + _next_match += 1 + return os.environ[name] + + +def get_next_match_as_int(): + return int(get_next_match()) + + +def get_next_match_as_datadir_path(): + return datadir(get_next_match()) + + +def datadir(relative): + return os.path.join(os.environ['DATADIR'], relative) + + +def srcdir(relative): + return os.path.join(os.environ['SRCDIR'], relative) + + +def iter_over_files(root): + for dirname, _, filenames in os.walk(root): + for filename in filenames: + yield os.path.join(dirname, filename) + + +def cat(filename): + with open(filename) as f: + return f.read() -- cgit v1.2.1