From 3f76c1efb04a6a8dd9976ce72b89f712293c2d5d Mon Sep 17 00:00:00 2001 From: Mike Kinney Date: Wed, 5 Jan 2022 13:22:37 -0800 Subject: [PATCH] refactor version info so pyinstaller will work; add build mac and ubuntu standalone executables --- .github/workflows/build_mac.yml | 26 ++++++++++++++++++++++++++ .github/workflows/build_ubuntu.yml | 26 ++++++++++++++++++++++++++ .github/workflows/build_windows.yml | 2 +- .gitignore | 1 + meshtastic/__main__.py | 4 ++-- meshtastic/util.py | 3 ++- 6 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/build_mac.yml create mode 100644 .github/workflows/build_ubuntu.yml diff --git a/.github/workflows/build_mac.yml b/.github/workflows/build_mac.yml new file mode 100644 index 0000000..9ddb9bb --- /dev/null +++ b/.github/workflows/build_mac.yml @@ -0,0 +1,26 @@ +name: Build and publish mac standalone executable + +on: workflow_dispatch + +jobs: + build-and-publish: + runs-on: macos-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - name: Build + run: | + pip install pyinstaller + pip install -r requirements.txt + pyinstaller -F -n meshtastic meshtastic/__main__.py + - uses: actions/upload-artifact@v2 + with: + name: meshtastic + path: dist diff --git a/.github/workflows/build_ubuntu.yml b/.github/workflows/build_ubuntu.yml new file mode 100644 index 0000000..61dc793 --- /dev/null +++ b/.github/workflows/build_ubuntu.yml @@ -0,0 +1,26 @@ +name: Build and publish ubuntu standalone executable + +on: workflow_dispatch + +jobs: + build-and-publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - name: Build + run: | + pip install pyinstaller + pip install -r requirements.txt + pyinstaller -F -n meshtastic meshtastic/__main__.py + - uses: actions/upload-artifact@v2 + with: + name: meshtastic + path: dist diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index 6751362..c7c2f76 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -15,7 +15,7 @@ jobs: with: python-version: 3.9 - - name: Build exe + - name: Build run: | pip install pyinstaller pip install -r requirements.txt diff --git a/.gitignore b/.gitignore index 5bd5bcd..d316698 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ venv/ .DS_Store __pycache__ examples/__pycache__ +meshtastic.spec diff --git a/meshtastic/__main__.py b/meshtastic/__main__.py index f835133..8a95ad5 100644 --- a/meshtastic/__main__.py +++ b/meshtastic/__main__.py @@ -818,8 +818,8 @@ def initParser(): parser.set_defaults(deprecated=None) - parser.add_argument('--version', action='version', - version=f"{pkg_resources.require('meshtastic')[0].version}") + the_version = pkg_resources.get_distribution("meshtastic").version + parser.add_argument('--version', action='version', version=f"{the_version}") parser.add_argument( "--support", action='store_true', help="Show support info (useful when troubleshooting an issue)") diff --git a/meshtastic/util.py b/meshtastic/util.py index 289603c..6b0b8c8 100644 --- a/meshtastic/util.py +++ b/meshtastic/util.py @@ -195,7 +195,8 @@ def support_info(): print(' Machine: {0}'.format(platform.uname().machine)) print(' Encoding (stdin): {0}'.format(sys.stdin.encoding)) print(' Encoding (stdout): {0}'.format(sys.stdout.encoding)) - print(' meshtastic: v{0}'.format(pkg_resources.require('meshtastic')[0].version)) + the_version = pkg_resources.get_distribution("meshtastic").version + print(' meshtastic: v{0}'.format(the_version)) print(' Executable: {0}'.format(sys.argv[0])) print(' Python: {0} {1} {2}'.format(platform.python_version(), platform.python_implementation(), platform.python_compiler()))