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 bbd5d6147b
commit c2a8c7d75a
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