From fdd4169cd71df94a54de09527399a48318bf02d6 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 24 May 2023 08:34:36 +0200 Subject: [PATCH] Improve cli experience (#4881) * fix cli call to get a fully running invoke * use relativ import This is importend when imported from outside * Add version command * Add more information to version command * make print easier to understand --- InvenTree/InvenTree/version.py | 2 +- Procfile | 2 +- tasks.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index 1d8923c5bb..e87214118e 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -9,7 +9,7 @@ import subprocess import django -from InvenTree.api_version import INVENTREE_API_VERSION +from .api_version import INVENTREE_API_VERSION # InvenTree software version INVENTREE_SW_VERSION = "0.12.0 dev" diff --git a/Procfile b/Procfile index 97f089b4be..dd2f26d495 100644 --- a/Procfile +++ b/Procfile @@ -1,3 +1,3 @@ web: env/bin/gunicorn --chdir $APP_HOME/InvenTree -c InvenTree/gunicorn.conf.py InvenTree.wsgi -b 0.0.0.0:$PORT worker: env/bin/python InvenTree/manage.py qcluster -cli: env/bin/python -m invoke +cli: . env/bin/activate && exec env/bin/python -m invoke diff --git a/tasks.py b/tasks.py index a63dc73f6f..b42afb05ed 100644 --- a/tasks.py +++ b/tasks.py @@ -7,6 +7,7 @@ import re import shutil import sys from pathlib import Path +from platform import python_version from invoke import task @@ -641,3 +642,36 @@ def schema(c, filename='schema.yml', overwrite=False): """Export current API schema.""" check_file_existance(filename, overwrite) manage(c, f'spectacular --file {filename}') + + +@task(default=True) +def version(c): + """Show the current version of InvenTree.""" + import InvenTree.InvenTree.version as InvenTreeVersion + from InvenTree.InvenTree.config import (get_config_file, get_media_dir, + get_static_dir) + + print(f""" +InvenTree - inventree.org +The Open-Source Inventory Management System\n + +Installation paths: +Base {localDir()} +Config {get_config_file()} +Media {get_media_dir()} +Static {get_static_dir()} + +Versions: +Python {python_version()} +Django {InvenTreeVersion.inventreeDjangoVersion()} +InvenTree {InvenTreeVersion.inventreeVersion()} +API {InvenTreeVersion.inventreeApiVersion()} + +Commit hash:{InvenTreeVersion.inventreeCommitHash()} +Commit date:{InvenTreeVersion.inventreeCommitDate()}""") + if len(sys.argv) == 1 and sys.argv[0].startswith('/opt/inventree/env/lib/python'): + print(""" +You are probably running the package installer / single-line installer. Please mentioned that in any bug reports! + +Use '--list' for a list of available commands +Use '--help' for help on a specific command""")