Chrome will be installed in the data directory
This commit is contained in:
parent
9117bb8fcd
commit
76dc835e59
|
@ -61,8 +61,6 @@ CloseApplications=yes
|
||||||
[UninstallRun]
|
[UninstallRun]
|
||||||
Filename: "cmd.exe"; Parameters: "/C taskkill /IM {#MyAppExec}.exe /F"; Flags: runhidden
|
Filename: "cmd.exe"; Parameters: "/C taskkill /IM {#MyAppExec}.exe /F"; Flags: runhidden
|
||||||
Filename: "cmd.exe"; Parameters: "/C taskkill /IM QtWebEngineProcess.exe /F"; Flags: runhidden
|
Filename: "cmd.exe"; Parameters: "/C taskkill /IM QtWebEngineProcess.exe /F"; Flags: runhidden
|
||||||
Filename: "cmd.exe"; Parameters: "/C taskkill /IM chrome.exe /F"; Flags: runhidden
|
|
||||||
Filename: "cmd.exe"; Parameters: "/C taskkill /IM chromedriver.exe /F"; Flags: runhidden
|
|
||||||
Filename: "cmd.exe"; Parameters: "/C taskkill /IM selenium-manager.exe /F"; Flags: runhidden
|
Filename: "cmd.exe"; Parameters: "/C taskkill /IM selenium-manager.exe /F"; Flags: runhidden
|
||||||
|
|
||||||
[Languages]
|
[Languages]
|
||||||
|
|
47
Galactic.py
47
Galactic.py
|
@ -2088,8 +2088,8 @@ class WebServer:
|
||||||
self.upload_dir = os.path.join(data, 'upload')
|
self.upload_dir = os.path.join(data, 'upload')
|
||||||
self.browser_manager = BrowserManager(
|
self.browser_manager = BrowserManager(
|
||||||
runner=runner,
|
runner=runner,
|
||||||
driver=os.path.join(root, 'Chrome/chromedriver.exe'),
|
driver=os.path.join(data, 'Chrome/chromedriver.exe'),
|
||||||
binary=os.path.join(root, 'Chrome/chrome.exe'),
|
binary=os.path.join(data, 'Chrome/chrome.exe'),
|
||||||
manager_data_file=os.path.join(data, 'manager.json'),
|
manager_data_file=os.path.join(data, 'manager.json'),
|
||||||
browser_data_home=os.path.join(data, 'users'),
|
browser_data_home=os.path.join(data, 'users'),
|
||||||
browser_init_home=os.path.join(root, 'initialize'),
|
browser_init_home=os.path.join(root, 'initialize'),
|
||||||
|
@ -2324,9 +2324,39 @@ class MainRunner:
|
||||||
else:
|
else:
|
||||||
shutil.copy(src, dst)
|
shutil.copy(src, dst)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _remove_directory(src):
|
||||||
|
if (os.path.isdir(src)) == 1:
|
||||||
|
shutil.rmtree(src)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _rename_directory(src, dst):
|
||||||
|
if (os.path.isdir(src)) == 1:
|
||||||
|
os.rename(src, dst)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _read_file_text(src):
|
||||||
|
return open(file=src, mode='r', encoding='utf-8').read() if os.path.exists(src) else ''
|
||||||
|
|
||||||
|
def install_chrome(self):
|
||||||
|
chrome_install_source = os.path.join(self.app_root, 'Chrome')
|
||||||
|
chrome_install_source_version = os.path.join(chrome_install_source, 'chrome.version')
|
||||||
|
chrome_install_target = os.path.join(self.app_data, 'Chrome')
|
||||||
|
chrome_install_target_version = os.path.join(chrome_install_target, 'chrome.version')
|
||||||
|
chrome_install_target_newname = '%s.delete' % (chrome_install_target,)
|
||||||
|
if (os.path.exists(chrome_install_source)) != 1:
|
||||||
|
return None
|
||||||
|
if (self._read_file_text(chrome_install_source_version) == self._read_file_text(chrome_install_target_version)) == 1:
|
||||||
|
return None
|
||||||
|
if (os.path.exists(chrome_install_target)) == 1:
|
||||||
|
self._remove_directory(chrome_install_target_newname)
|
||||||
|
self._rename_directory(chrome_install_target, chrome_install_target_newname)
|
||||||
|
self._remove_directory(chrome_install_target_newname)
|
||||||
|
self._copy_files_and_directories(chrome_install_source, chrome_install_target)
|
||||||
|
return True
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
os.path.exists(self.app_data) or os.makedirs(self.app_data)
|
os.path.exists(self.app_data) or os.makedirs(self.app_data)
|
||||||
if (os.environ.get('PYCHARM_HOSTED_ANY_TIME') is None) == 1:
|
|
||||||
log_dir = os.path.join(self.app_data, 'log')
|
log_dir = os.path.join(self.app_data, 'log')
|
||||||
os.path.exists(log_dir) or os.makedirs(log_dir)
|
os.path.exists(log_dir) or os.makedirs(log_dir)
|
||||||
stdout_redirector = OutputRedirector(sys.stdout, open(os.path.join(log_dir, '%s_stdout.log' % (time.strftime('%Y%m%d', time.localtime()),)), mode='a'))
|
stdout_redirector = OutputRedirector(sys.stdout, open(os.path.join(log_dir, '%s_stdout.log' % (time.strftime('%Y%m%d', time.localtime()),)), mode='a'))
|
||||||
|
@ -2337,6 +2367,17 @@ class MainRunner:
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), 'site-packages.zip'))
|
sys.path.append(os.path.join(os.path.dirname(__file__), 'site-packages.zip'))
|
||||||
sys.path.append(os.path.join(self.app_data, 'Packages'))
|
sys.path.append(os.path.join(self.app_data, 'Packages'))
|
||||||
sys.path.append(os.path.join(self.app_data, 'site-packages.zip'))
|
sys.path.append(os.path.join(self.app_data, 'site-packages.zip'))
|
||||||
|
try:
|
||||||
|
self.install_chrome() and print('Chrome is now installed.', file=sys.stderr)
|
||||||
|
except PermissionError:
|
||||||
|
_app = QApplication(sys.argv)
|
||||||
|
_msg = QMessageBox()
|
||||||
|
_msg.setIcon(QMessageBox.Warning)
|
||||||
|
_msg.setText('Chrome needs to be updated, please quit all browser users first.')
|
||||||
|
_msg.setWindowTitle('Warning')
|
||||||
|
_msg.setStandardButtons(QMessageBox.Cancel)
|
||||||
|
_msg.exec_()
|
||||||
|
_app.exit(1)
|
||||||
self.web_server = WebServer(runner=self, root=self.app_root, data=self.app_data, default_plugins=self.plugin_list)
|
self.web_server = WebServer(runner=self, root=self.app_root, data=self.app_data, default_plugins=self.plugin_list)
|
||||||
self.web_server_thread = threading.Thread(target=self.web_server.run, kwargs={'host': self.web_server_host, 'port': self.web_server_port})
|
self.web_server_thread = threading.Thread(target=self.web_server.run, kwargs={'host': self.web_server_host, 'port': self.web_server_port})
|
||||||
self.web_server_thread.daemon = True
|
self.web_server_thread.daemon = True
|
||||||
|
|
Loading…
Reference in New Issue