Write rebuild-cli in python instead of bash to work in Windows, and make the dev script available in Windows

This commit is contained in:
Micah Lee 2020-11-29 13:57:53 -08:00
parent c904bb5b5f
commit c2940a307d
No known key found for this signature in database
GPG Key ID: 403C2657CD994F73
4 changed files with 51 additions and 11 deletions

View File

@ -79,7 +79,7 @@ pip install briefcase
In order to work with the desktop app, you'll need to build a wheel of the CLI package first, and copy it into the `desktop` folder. You'll need to re-run this script each time you change the CLI code.
```sh
./scripts/rebuild-cli.sh
python scripts/rebuild-cli.py
```
### Running OnionShare from the source code tree
@ -98,6 +98,8 @@ Once you have the dependencies installed, you can run it using the `dev.sh` scri
./scripts/dev.sh -v --local-only
```
Windows uses `scripts\dev.bat` instead.
## Running tests
Install these packages inside your virtual environment:

3
desktop/scripts/dev.bat Normal file
View File

@ -0,0 +1,3 @@
cd src
python -c "import onionshare; onionshare.main()" %*
cd ..

45
desktop/scripts/rebuild-cli.py Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env python3
"""
This script builds the CLI python wheel, copies it to the desktop folder,
and installs it in the virtual environment.
"""
import inspect
import os
import sys
import glob
import subprocess
import shutil
def main():
# Build paths
root_path = os.path.dirname(
os.path.dirname(
os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
)
)
cli_path = os.path.join(root_path, "cli")
desktop_path = os.path.join(root_path, "desktop")
# Delete old wheels
for filename in glob.glob(os.path.join(cli_path, "dist", "*.whl")):
os.remove(filename)
# Build new wheel
subprocess.call(["poetry", "install"], cwd=cli_path)
subprocess.call(["poetry", "build"], cwd=cli_path)
wheel_filename = glob.glob(os.path.join(cli_path, "dist", "*.whl"))[0]
wheel_basename = os.path.basename(wheel_filename)
shutil.copyfile(
wheel_filename,
os.path.join(desktop_path, wheel_basename),
)
# Reinstall the new wheel
subprocess.call(["pip", "uninstall", "onionshare-cli", "-y"])
subprocess.call(["pip", "install", os.path.join(desktop_path, wheel_basename)])
if __name__ == "__main__":
main()

View File

@ -1,10 +0,0 @@
#!/bin/bash
# Build the CLI python wheel and copy it to the desktop folder
SCRIPTS_DIR="$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
cd $SCRIPTS_DIR
cd ../../cli
poetry install
poetry build
cp dist/*.whl ../desktop