Added silent installer
This commit is contained in:
5
build_bats/build-installer-silent.bat
Normal file
5
build_bats/build-installer-silent.bat
Normal file
@@ -0,0 +1,5 @@
|
||||
cd ..
|
||||
pip install -r requirements.txt
|
||||
pyinstaller --noconfirm --icon "img/icon.ico" --console --onefile "horsy_installer_silent.py"
|
||||
rmdir /s /q __pycache__
|
||||
del horsy_installer_silent.spec
|
||||
7
build_bats/build-installer-silent_clean.bat
Normal file
7
build_bats/build-installer-silent_clean.bat
Normal file
@@ -0,0 +1,7 @@
|
||||
cd ..
|
||||
pip install -r requirements.txt
|
||||
rmdir /s /q build
|
||||
pyinstaller --noconfirm --icon "img/icon.ico" --console --onefile "horsy_installer_silent.py"
|
||||
rmdir /s /q __pycache__
|
||||
del horsy_installer_silent.spec
|
||||
rmdir /s /q build
|
||||
1
dist.py
1
dist.py
@@ -3,6 +3,7 @@ import os
|
||||
os.system("xcopy /s /Y dist\horsy.exe bin\horsy.exe*")
|
||||
os.system("xcopy /s /Y dist\horsygui.exe bin\horsygui.exe*")
|
||||
os.system("xcopy /s /Y dist\horsy_installer.exe bin\installer-horsy-win.exe*")
|
||||
os.system("xcopy /s /Y dist\horsy_installer_silent.exe bin\installer-horsy-win-silent.exe*")
|
||||
os.system("xcopy /s /Y dist\horsy_updater.exe bin\horsy_updater.exe*")
|
||||
|
||||
with open("web_vars/version", "r") as f_r:
|
||||
|
||||
76
horsy_installer_silent.py
Normal file
76
horsy_installer_silent.py
Normal file
@@ -0,0 +1,76 @@
|
||||
import sys
|
||||
from modules.path import add_to_path, add_var
|
||||
import urllib.request
|
||||
import os
|
||||
import threading
|
||||
import ctypes
|
||||
import winshell
|
||||
from win32com.client import Dispatch
|
||||
import pythoncom
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description='horsy - the best package manager')
|
||||
parser.add_argument('-p', '--path', action='store_true', help='path to install app', required=False,
|
||||
default=os.path.expanduser("~") + "\horsy")
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
def install():
|
||||
global args
|
||||
path_to_install = args.path
|
||||
if path_to_install == "":
|
||||
print("Please choose path to install")
|
||||
return
|
||||
if not os.path.exists(path_to_install):
|
||||
os.makedirs(path_to_install)
|
||||
if not os.path.exists(path_to_install + "\\apps"):
|
||||
os.makedirs(path_to_install + "\\apps")
|
||||
threads = list()
|
||||
print("Adding task to download horsy")
|
||||
threads.append(threading.Thread(target=urllib.request.urlretrieve,
|
||||
args=("https://github.com/horsy-ml/horsy/raw/master/bin/horsy.exe",
|
||||
os.path.join(path_to_install) + '/horsy.exe'), ))
|
||||
print("Adding task to download horsygui")
|
||||
threads.append(threading.Thread(target=urllib.request.urlretrieve,
|
||||
args=("https://github.com/horsy-ml/horsy/raw/master/bin/horsygui.exe",
|
||||
os.path.join(path_to_install) + '/horsygui.exe'), ))
|
||||
try:
|
||||
print("Starting tasks")
|
||||
for thread in threads:
|
||||
thread.start()
|
||||
except:
|
||||
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
|
||||
sys.exit()
|
||||
|
||||
print("Adding to PATH")
|
||||
add_var(path_to_install)
|
||||
add_to_path(os.path.join(path_to_install))
|
||||
print("Downloading version file")
|
||||
urllib.request.urlretrieve("https://github.com/horsy-ml/horsy/raw/master/web_vars/version",
|
||||
os.path.join(path_to_install) + '/apps/version')
|
||||
print("Version specified")
|
||||
|
||||
def wait_for_finish():
|
||||
for thread in threads:
|
||||
thread.join()
|
||||
print("Downloading finished")
|
||||
print("Creating shortcuts")
|
||||
desktop = winshell.desktop()
|
||||
path = os.path.join(desktop, "horsy GUI.lnk")
|
||||
target = os.path.join(path_to_install) + '/horsygui.exe'
|
||||
wDir = os.path.join(path_to_install)
|
||||
icon = os.path.join(path_to_install) + '/horsygui.exe'
|
||||
pythoncom.CoInitializeEx(0)
|
||||
shell = Dispatch('WScript.Shell')
|
||||
shortcut = shell.CreateShortCut(path)
|
||||
shortcut.Targetpath = target
|
||||
shortcut.WorkingDirectory = wDir
|
||||
shortcut.IconLocation = icon
|
||||
shortcut.save()
|
||||
print("Installation complete")
|
||||
|
||||
threading.Thread(target=wait_for_finish).start()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
install()
|
||||
Reference in New Issue
Block a user