[chirp_devel] [PATCH 2/4] Refactor version display into chirp module (#2343)
Zach Welch
Sun Feb 22 23:09:53 PST 2015
This patch makes the version string reusable between the GUI and CLI.
---
chirp.py | 8 ++++++++
chirp/__init__.py | 7 +++++++
chirpw | 6 ++----
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/chirp.py b/chirp.py
index 88c3922..28ed8f9 100755
--- a/chirp.py
+++ b/chirp.py
@@ -23,6 +23,11 @@ import optparse
from chirp import *
from chirp import chirp_common, errors, idrp, directory, util
+from chirp import print_chirp_version
+
+def print_version(option, opt, value, parser):
+ print_chirp_version()
+ sys.exit(0)
def fail_unsupported():
print "Operation not supported by selected radio"
@@ -58,6 +63,9 @@ def store_dtcspol(option, opt, value, parser):
setattr(parser.values, option.dest, value)
if __name__ == "__main__":
parser = OptionParser()
+ parser.add_option("", "--version", action="callback",
+ callback=print_version, nargs=0,
+ help="Print version and exit")
parser.add_option("-s", "--serial", dest="serial",
default="mmap",
help="Serial port (default: mmap)")
diff --git a/chirp/__init__.py b/chirp/__init__.py
index 084af48..e5118d1 100644
--- a/chirp/__init__.py
+++ b/chirp/__init__.py
@@ -17,6 +17,7 @@ CHIRP_VERSION="0.3.0dev"
import os
import sys
+import platform
from glob import glob
module_dir = os.path.dirname(sys.modules["chirp"].__file__)
@@ -25,3 +26,9 @@ for i in glob(os.path.join(module_dir, "*.py")):
name = os.path.basename(i)[:-3]
if not name.startswith("__"):
__all__.append(name)
+
+def print_chirp_version():
+ """Return the versions string"""
+ print "CHIRP %s on %s (Python %s)" % (CHIRP_VERSION,
+ platform.get_platform().os_version_string(),
+ sys.version.split()[0])
diff --git a/chirpw b/chirpw
index 88b8e4b..0fa7340 100755
--- a/chirpw
+++ b/chirpw
@@ -18,7 +18,7 @@
import os
from chirp import elib_intl
-from chirp import platform, CHIRP_VERSION
+from chirp import platform, print_chirp_version
from chirpui import config
# Hack to setup environment
@@ -39,9 +39,7 @@ elif not os.isatty(0):
sys.stdout = log
sys.stderr = log
-print "CHIRP %s on %s (Python %s)" % (CHIRP_VERSION,
- platform.get_platform().os_version_string(),
- sys.version.split()[0])
+print_chirp_version();
execpath = platform.get_platform().executable_path()
localepath = os.path.abspath(os.path.join(execpath, "locale"))
--
1.9.1
More information about the chirp_devel
mailing list