-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
116 lines (79 loc) · 2.4 KB
/
setup.py
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# -*- coding: utf-8 -*-
"""
python setup.py py2app
"""
import os
import shutil
import subprocess
import sys
from datetime import datetime
from setuptools import setup
from cfg import Cfg
# ****************** DON'T CHANGE IT ******************
def remove_trash():
trash = ("build", ".eggs", "dist")
for i in trash:
try:
shutil.rmtree(i)
except Exception as e:
continue
def move_app_to_desktop(appname: str):
desktop = os.path.expanduser("~/Desktop")
dest = os.path.join(desktop, f"{appname}.app")
src = os.path.join("dist", f"{appname}.app")
try:
if os.path.exists(dest):
shutil.rmtree(dest)
except Exception as e:
print(e)
try:
shutil.move(src, dest)
except Exception as e:
print(e)
try:
subprocess.Popen(["open", "-R", dest])
except Exception as e:
print(e)
def include_files(folder_name: str) -> list[str, list]:
return (
folder_name,
[os.path.join(folder_name, i) for i in os.listdir(folder_name)]
)
# ****************** YOUR DATA ******************
AUTHOR = "Evgeny Loshkarev" # "Evgeny Loshkarev"
SHORT_AUTHOR_NAME = "Evlosh" # "Evlosh"
COMPANY = "" # "MIUZ Diamonds" or ""
APP_NAME = Cfg.app_name
APP_VER = Cfg.app_ver
ICON_PATH = "icon.icns" # "icon/icon.icns" or "icon.icns"
MAIN_FILES = ["start.py"] # SINGLE OR MULTIPLE PYTHON FILES
DATA_FILES = [
]
# ****************** DON'T CHANGE IT ******************
YEAR = datetime.now().year # CURRENT YEAR
BUNDLE_ID = f"com.{SHORT_AUTHOR_NAME}.{APP_NAME}" # DON'T CHANGE IT
PY2APP = "py2app" # DON'T CHANGE IT
OPTIONS = {"iconfile": ICON_PATH,
"plist": {"CFBundleName": APP_NAME,
"CFBundleShortVersionString": APP_VER,
"CFBundleVersion": APP_VER,
"CFBundleIdentifier": BUNDLE_ID,
"NSHumanReadableCopyright": (
f"Created by {AUTHOR}"
f"\nCopyright © {YEAR} {COMPANY}."
f"\nAll rights reserved.")}}
sys.argv.append(PY2APP)
try:
remove_trash()
setup(
app=MAIN_FILES,
name=APP_NAME,
data_files=DATA_FILES,
options={PY2APP: OPTIONS},
setup_requires=[PY2APP],
)
move_app_to_desktop(APP_NAME)
remove_trash()
except Exception as e:
print(e)
remove_trash()