diff options
author | hrxi <hrrrxi@gmail.com> | 2023-03-20 02:01:22 +0100 |
---|---|---|
committer | fiaxh <fiaxh@users.noreply.github.com> | 2023-03-24 19:32:50 +0100 |
commit | 5a90e793ddec723677f2b715b967f29f046e16d2 (patch) | |
tree | 6a96f142526990010635607cb547b79b9c3f060e /libdino/version.py | |
parent | b617bf7cc4ac2aa083bcf889816d0479fa353e10 (diff) | |
download | dino-5a90e793ddec723677f2b715b967f29f046e16d2.tar.gz dino-5a90e793ddec723677f2b715b967f29f046e16d2.zip |
First steps of meson support
Basic configuration of qlite, xmpp-vala, the Dino library and the Dino
application are supported. There's no support for the plugins.
This e.g. enables using the Vala language server.
Diffstat (limited to 'libdino/version.py')
-rw-r--r-- | libdino/version.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libdino/version.py b/libdino/version.py new file mode 100644 index 00000000..d34db6a8 --- /dev/null +++ b/libdino/version.py @@ -0,0 +1,36 @@ +import argparse +import subprocess +VERSION_VALA = """\ +namespace Dino {{ + +public const string VERSION = "{}"; + +}} +""" + +def compute_version(file, git_repo, git): + try: + with open(file) as f: + return f.read().strip() + except FileNotFoundError: + pass + return subprocess.check_output([git, "describe", "--tags"], cwd=git_repo, text=True).strip() + +def generate_version_vala(version): + if "\\" in version or "\"" in version: + raise ValueError(f"invalid version {version!r}") + return VERSION_VALA.format(version) + +def main(): + p = argparse.ArgumentParser(description="Compute the Dino version") + p.add_argument("--git-repo", help="Path to checked out git repository") + p.add_argument("--git", help="Path to git executable", default="git") + p.add_argument("version_file", metavar="VERSION_FILE", help="Use this file's contents as version if the file exists") + p.add_argument("output", metavar="OUTPUT", help="Vala file to output to") + args = p.parse_args() + out = generate_version_vala(compute_version(args.version_file, args.git_repo, args.git)) + with open(args.output, "w") as f: + f.write(out) + +if __name__ == "__main__": + main() |