forked from rhasspy/rhasspy-supervisor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rhasspysupervisor.spec
73 lines (66 loc) · 1.77 KB
/
rhasspysupervisor.spec
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- mode: python -*-
import os
import site
from pathlib import Path
site_dirs = site.getsitepackages()
# Add explicit site packages
rhasspy_site_packages = os.environ.get("RHASSPY_SITE_PACKAGES")
if rhasspy_site_packages:
site_dirs = [rhasspy_site_packages] + site_dirs
# Add virtual environment site packages
venv_path = os.environ.get("VIRTUAL_ENV")
if venv_path:
venv_lib = Path(venv_path) / "lib"
for venv_python_dir in venv_lib.glob("python*"):
venv_site_dir = venv_python_dir / "site-packages"
if venv_site_dir.is_dir():
site_dirs.append(venv_site_dir)
# Look for compiled artifacts
rhasspyprofile_path = None
for site_dir in site_dirs:
site_dir = Path(site_dir)
for package_dir in site_dir.glob("*"):
if package_dir.is_dir() and package_dir.name == "rhasspyprofile":
rhasspyprofile_path = package_dir
break
assert rhasspyprofile_path, "Need path to rhasspyprofile module"
block_cipher = None
a = Analysis(
[Path.cwd() / "__main__.py"],
pathex=["."],
binaries=[],
datas=[
(f, str("rhasspyprofile" / f.relative_to(rhasspyprofile_path).parent))
for f in rhasspyprofile_path.glob("profiles/**/*")
],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name="rhasspysupervisor",
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name="rhasspysupervisor",
)