aboutsummaryrefslogtreecommitdiff
path: root/desktop/scripts/rebuild-cli.py
blob: f9a4355487461a52327db6492aa01c2ec6141d09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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 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)])
    subprocess.call(["pip", "install", "typing-extensions"])


if __name__ == "__main__":
    main()