aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
Diffstat (limited to 'klippy')
-rw-r--r--klippy/util.py35
1 files changed, 24 insertions, 11 deletions
diff --git a/klippy/util.py b/klippy/util.py
index 86f42246..dfb505a8 100644
--- a/klippy/util.py
+++ b/klippy/util.py
@@ -53,18 +53,31 @@ def get_cpu_info():
model_name = dict(lines).get("model name", "?")
return "%d core %s" % (core_count, model_name)
-def get_git_version():
+def get_version_from_file(klippy_src):
+ try:
+ with open(os.path.join(klippy_src, '.version')) as h:
+ return h.read().rstrip()
+ except IOError:
+ pass
+ return "?"
+
+def get_git_version(from_file=True):
+ klippy_src = os.path.dirname(__file__)
+
# Obtain version info from "git" program
- gitdir = os.path.join(sys.path[0], '..')
- if not os.path.exists(gitdir):
- logging.debug("No '.git' file/directory found")
- return "?"
- prog = "git -C %s describe --always --tags --long --dirty" % (gitdir,)
+ gitdir = os.path.join(klippy_src, '..')
+ prog = ('git', '-C', gitdir, 'describe', '--always', '--tags', '--long', '--dirty')
try:
- process = subprocess.Popen(shlex.split(prog), stdout=subprocess.PIPE)
- output = process.communicate()[0]
- retcode = process.poll()
+ process = subprocess.Popen(prog, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ ver, err = process.communicate()
+ retcode = process.wait()
+ if retcode == 0:
+ return ver.strip()
+ else:
+ logging.debug("Error getting git version: %s", err)
except OSError:
logging.debug("Exception on run: %s", traceback.format_exc())
- return "?"
- return output.strip()
+
+ if from_file:
+ return get_version_from_file(klippy_src)
+ return "?"