mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
[web] improvment: letting the Electron client to download the Electron build file instead of bauh
This commit is contained in:
@@ -31,7 +31,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
|
|
||||||
- Web
|
- Web
|
||||||
- the Electron builds cache directory has been moved to the environment directory `~/.local/share/bauh/web/env/electron`
|
- the Electron builds cache directory has been moved to the environment directory `~/.local/share/bauh/web/env/electron`
|
||||||
|
- letting the Electron client to download the Electron build file instead of bauh (to avoid wrong caching paths)
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
- General
|
- General
|
||||||
|
|||||||
@@ -191,34 +191,6 @@ class EnvironmentUpdater:
|
|||||||
def _is_nativefier_installed(self) -> bool:
|
def _is_nativefier_installed(self) -> bool:
|
||||||
return os.path.exists(NATIVEFIER_BIN_PATH)
|
return os.path.exists(NATIVEFIER_BIN_PATH)
|
||||||
|
|
||||||
def download_electron(self, version: str, url: str, widevine: bool, watcher: ProcessWatcher) -> bool:
|
|
||||||
self.logger.info(f"Downloading Electron {version}")
|
|
||||||
|
|
||||||
electron_path = self._get_electron_file_path(url=url, relative=False)
|
|
||||||
|
|
||||||
if not self.http_client.exists(url):
|
|
||||||
self.logger.warning(f"The file {url} seems not to exist")
|
|
||||||
watcher.show_message(title=self.i18n['message.file.not_exist'],
|
|
||||||
body=self.i18n['message.file.not_exist.body'].format(bold(url)),
|
|
||||||
type_=MessageType.ERROR)
|
|
||||||
return False
|
|
||||||
|
|
||||||
return self.file_downloader.download(file_url=url, watcher=watcher, output_path=electron_path, cwd=ELECTRON_CACHE_DIR)
|
|
||||||
|
|
||||||
def download_electron_sha256(self, version: str, url: str, widevine: bool, watcher: ProcessWatcher) -> bool:
|
|
||||||
self.logger.info(f"Downloading Electron {version} sha526")
|
|
||||||
|
|
||||||
sha256_path = self._get_electron_file_path(url=url, relative=False)
|
|
||||||
|
|
||||||
if not self.http_client.exists(url):
|
|
||||||
self.logger.warning(f"The file {url} seems not to exist")
|
|
||||||
watcher.show_message(title=self.i18n['message.file.not_exist'],
|
|
||||||
body=self.i18n['message.file.not_exist.body'].format(bold(url)),
|
|
||||||
type_=MessageType.ERROR)
|
|
||||||
return False
|
|
||||||
|
|
||||||
return self.file_downloader.download(file_url=url, watcher=watcher, output_path=sha256_path, cwd=ELECTRON_CACHE_DIR)
|
|
||||||
|
|
||||||
def _get_electron_url(self, version: str, is_x86_x64_arch: bool, widevine: bool) -> str:
|
def _get_electron_url(self, version: str, is_x86_x64_arch: bool, widevine: bool) -> str:
|
||||||
arch = 'x64' if is_x86_x64_arch else 'ia32'
|
arch = 'x64' if is_x86_x64_arch else 'ia32'
|
||||||
if widevine:
|
if widevine:
|
||||||
@@ -232,10 +204,6 @@ class EnvironmentUpdater:
|
|||||||
else:
|
else:
|
||||||
return ELECTRON_SHA256_URL.format(version=version)
|
return ELECTRON_SHA256_URL.format(version=version)
|
||||||
|
|
||||||
def _get_electron_file_path(self, url: str, relative: bool) -> str:
|
|
||||||
file_path = url.replace(':', '').replace('/', '') + '/' + url.split('/')[-1]
|
|
||||||
return f'{ELECTRON_CACHE_DIR}/{file_path}' if not relative else file_path
|
|
||||||
|
|
||||||
def check_electron_installed(self, version: str, is_x86_x64_arch: bool, widevine: bool) -> Dict[str, bool]:
|
def check_electron_installed(self, version: str, is_x86_x64_arch: bool, widevine: bool) -> Dict[str, bool]:
|
||||||
self.logger.info(f"Checking if Electron {version} (widevine={widevine}) is installed")
|
self.logger.info(f"Checking if Electron {version} (widevine={widevine}) is installed")
|
||||||
res = {'electron': False, 'sha256': False}
|
res = {'electron': False, 'sha256': False}
|
||||||
@@ -243,20 +211,14 @@ class EnvironmentUpdater:
|
|||||||
if not os.path.exists(ELECTRON_CACHE_DIR):
|
if not os.path.exists(ELECTRON_CACHE_DIR):
|
||||||
self.logger.info(f"Electron cache directory {ELECTRON_CACHE_DIR} not found")
|
self.logger.info(f"Electron cache directory {ELECTRON_CACHE_DIR} not found")
|
||||||
else:
|
else:
|
||||||
files = {f.split(ELECTRON_CACHE_DIR + '/')[1] for f in glob.glob(ELECTRON_CACHE_DIR + '/**', recursive=True) if os.path.isfile(f)}
|
files = {f for f in glob.glob(f'{ELECTRON_CACHE_DIR}/**', recursive=True) if os.path.isfile(f)}
|
||||||
|
|
||||||
if files:
|
if files:
|
||||||
electron_url = self._get_electron_url(version, is_x86_x64_arch, widevine)
|
electron_url = self._get_electron_url(version, is_x86_x64_arch, widevine)
|
||||||
file_path = self._get_electron_file_path(url=electron_url, relative=True)
|
electron_file_name = os.path.basename(electron_url)
|
||||||
|
file_path_found = [f for f in files if os.path.basename(f) == electron_file_name]
|
||||||
res['electron'] = file_path in files
|
res['electron'] = bool(file_path_found)
|
||||||
|
res['sha256'] = res['electron']
|
||||||
if not res['electron']:
|
|
||||||
res['sha256'] = True
|
|
||||||
else:
|
|
||||||
sha_url = self._get_electron_sha256_url(version=version, widevine=widevine)
|
|
||||||
sha_path = self._get_electron_file_path(url=sha_url, relative=True)
|
|
||||||
res['sha256'] = sha_path in files
|
|
||||||
else:
|
else:
|
||||||
self.logger.info(f"No Electron file found in '{ELECTRON_CACHE_DIR}'")
|
self.logger.info(f"No Electron file found in '{ELECTRON_CACHE_DIR}'")
|
||||||
|
|
||||||
@@ -501,17 +463,5 @@ class EnvironmentUpdater:
|
|||||||
if nativefier_data and not self._install_nativefier(version=nativefier_data.version, url=nativefier_data.url, handler=handler):
|
if nativefier_data and not self._install_nativefier(version=nativefier_data.version, url=nativefier_data.url, handler=handler):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
electron_data = comp_map.get('electron')
|
|
||||||
|
|
||||||
if electron_data:
|
|
||||||
if not self.download_electron(version=electron_data.version, url=electron_data.url, watcher=handler.watcher, widevine=electron_data.properties['widevine']):
|
|
||||||
return False
|
|
||||||
|
|
||||||
sha256_data = comp_map.get('electron_sha256')
|
|
||||||
|
|
||||||
if sha256_data:
|
|
||||||
if not self.download_electron_sha256(version=sha256_data.version, url=sha256_data.url, watcher=handler.watcher, widevine=sha256_data.properties['widevine']):
|
|
||||||
return False
|
|
||||||
|
|
||||||
self.logger.info('Environment successfully updated')
|
self.logger.info('Environment successfully updated')
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user