From 3bd6078b2177a529fc97aa0c723ea7aa51d463c4 Mon Sep 17 00:00:00 2001
From: Johann Jacobsohn <j.jacobsohn@satzmedia.de>
Date: Mon, 17 Aug 2020 16:39:42 +0200
Subject: [PATCH] add --version argument

---
 MANIFEST.in                | 1 +
 papersurfer/__init__.py    | 0
 papersurfer/_version.txt   | 1 +
 papersurfer/papersurfer.py | 9 +++++++++
 setup.py                   | 3 ++-
 5 files changed, 13 insertions(+), 1 deletion(-)
 create mode 100644 MANIFEST.in
 create mode 100644 papersurfer/__init__.py
 create mode 100644 papersurfer/_version.txt

diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..cff3a33
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1 @@
+include papersurfer/_version.txt
diff --git a/papersurfer/__init__.py b/papersurfer/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/papersurfer/_version.txt b/papersurfer/_version.txt
new file mode 100644
index 0000000..78bc1ab
--- /dev/null
+++ b/papersurfer/_version.txt
@@ -0,0 +1 @@
+0.10.0
diff --git a/papersurfer/papersurfer.py b/papersurfer/papersurfer.py
index c09d4d0..aba2229 100644
--- a/papersurfer/papersurfer.py
+++ b/papersurfer/papersurfer.py
@@ -403,6 +403,13 @@ class PostDialog(urwid.WidgetWrap):
         self.doi_result.set_text("invalid doi")
 
 
+def get_version():
+    from pathlib import Path
+    pkgbase = Path(__file__).parent
+    with open(f"{pkgbase}/_version.txt", "r") as f:
+        return f.read()
+
+
 def parse_args():
     """Parse command line arguments and config file."""
     parser = configargparse.ArgParser(
@@ -421,6 +428,8 @@ def parse_args():
                help="Dump mattermost paper posts to stdout and exit")
     parser.add('--dump-bibtex', action='store_true',
                help="Dump mattermost paper posts to stdout and exit")
+    parser.add('--version', action='version',
+               version=get_version())
     options = parser.parse_args()
 
     if not options.url:
diff --git a/setup.py b/setup.py
index b9ce06b..0ad4520 100644
--- a/setup.py
+++ b/setup.py
@@ -6,11 +6,12 @@ HERE = pathlib.Path(__file__).parent
 
 # The text of the README file
 README = (HERE / "README.md").read_text()
+VERSION = (HERE / "papersurfer/_version.txt").read_text()
 
 # This call to setup() does all the work
 setup(
     name="papersurfer",
-    version="0.7.0",
+    version=VERSION,
     description="",
     long_description=README,
     long_description_content_type="text/markdown",
-- 
GitLab