mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 03:34:15 +02:00
[web] checking if the nativefier version exists
This commit is contained in:
@@ -25,5 +25,5 @@ TEMP_PATH = '/tmp/bauh/web'
|
|||||||
SEARCH_INDEX_FILE = '{}/index.yml'.format(TEMP_PATH)
|
SEARCH_INDEX_FILE = '{}/index.yml'.format(TEMP_PATH)
|
||||||
SUGGESTIONS_CACHE_FILE = '{}/suggestions.txt'.format(TEMP_PATH)
|
SUGGESTIONS_CACHE_FILE = '{}/suggestions.txt'.format(TEMP_PATH)
|
||||||
CONFIG_FILE = '{}/web.yml'.format(CONFIG_PATH)
|
CONFIG_FILE = '{}/web.yml'.format(CONFIG_PATH)
|
||||||
NATIVEFIER_URL = 'https://github.com/jiahaog/nativefier/archive/v7.7.0.tar.gz'
|
URL_NATIVEFIER = 'https://github.com/jiahaog/nativefier/archive/v{version}.tar.gz'
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import shutil
|
|||||||
import tarfile
|
import tarfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from typing import Dict, List, Tuple
|
from typing import Dict, List
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
import yaml
|
import yaml
|
||||||
@@ -18,8 +18,7 @@ from bauh.commons.html import bold
|
|||||||
from bauh.commons.system import SimpleProcess, ProcessHandler
|
from bauh.commons.system import SimpleProcess, ProcessHandler
|
||||||
from bauh.gems.web import ENV_PATH, NODE_DIR_PATH, NODE_BIN_PATH, NODE_MODULES_PATH, NATIVEFIER_BIN_PATH, \
|
from bauh.gems.web import ENV_PATH, NODE_DIR_PATH, NODE_BIN_PATH, NODE_MODULES_PATH, NATIVEFIER_BIN_PATH, \
|
||||||
ELECTRON_PATH, ELECTRON_DOWNLOAD_URL, ELECTRON_SHA256_URL, URL_ENVIRONMENT_SETTINGS, NPM_BIN_PATH, NODE_PATHS, \
|
ELECTRON_PATH, ELECTRON_DOWNLOAD_URL, ELECTRON_SHA256_URL, URL_ENVIRONMENT_SETTINGS, NPM_BIN_PATH, NODE_PATHS, \
|
||||||
nativefier, NATIVEFIER_URL
|
nativefier, URL_NATIVEFIER
|
||||||
from bauh.gems.web.config import read_config
|
|
||||||
from bauh.gems.web.model import WebApplication
|
from bauh.gems.web.model import WebApplication
|
||||||
from bauh.view.util.translation import I18n
|
from bauh.view.util.translation import I18n
|
||||||
|
|
||||||
@@ -153,6 +152,16 @@ class EnvironmentUpdater:
|
|||||||
return installed
|
return installed
|
||||||
|
|
||||||
def _install_nativefier(self, version: str, handler: ProcessHandler) -> bool:
|
def _install_nativefier(self, version: str, handler: ProcessHandler) -> bool:
|
||||||
|
self.logger.info("Checking if nativefier@{} exists".format(version))
|
||||||
|
|
||||||
|
url = URL_NATIVEFIER.format(version=version)
|
||||||
|
if not self.http_client.exists(url):
|
||||||
|
self.logger.warning("The file {} seems not to exist".format(url))
|
||||||
|
handler.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
|
||||||
|
|
||||||
success = self._install_node_lib('nativefier', version, handler)
|
success = self._install_node_lib('nativefier', version, handler)
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
@@ -161,35 +170,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 install_nativefier(self, version: str, remove_modules: bool = False, handler: ProcessHandler = None) -> bool:
|
|
||||||
self.logger.info("Preparing to install nativefier {}".format(version))
|
|
||||||
|
|
||||||
if remove_modules and os.path.exists(NODE_MODULES_PATH):
|
|
||||||
self.logger.info('Removing old dir {}'.format(NODE_MODULES_PATH))
|
|
||||||
try:
|
|
||||||
shutil.rmtree(NODE_MODULES_PATH)
|
|
||||||
except:
|
|
||||||
self.logger.error('Could not remove dir {}. Aborting...'.format(NODE_MODULES_PATH))
|
|
||||||
return False
|
|
||||||
|
|
||||||
return self._install_nativefier(version=version, handler=handler)
|
|
||||||
else:
|
|
||||||
if not self._is_nativefier_installed():
|
|
||||||
return self._install_nativefier(version=version, handler=handler)
|
|
||||||
|
|
||||||
installed_version = nativefier.get_version()
|
|
||||||
|
|
||||||
if installed_version:
|
|
||||||
installed_version = installed_version.strip()
|
|
||||||
|
|
||||||
self.logger.info("Nativefier versions: installed ({}), cloud ({})".format(installed_version, version))
|
|
||||||
if version != installed_version:
|
|
||||||
self.logger.info("Installed nativefier version is different from cloud's. Changing version.")
|
|
||||||
return self._install_nativefier(version=version, handler=handler)
|
|
||||||
|
|
||||||
self.logger.info("Nativefier is already installed and up to date")
|
|
||||||
return True
|
|
||||||
|
|
||||||
def download_electron(self, version: str, url: str, watcher: ProcessWatcher) -> bool:
|
def download_electron(self, version: str, url: str, watcher: ProcessWatcher) -> bool:
|
||||||
Path(ELECTRON_PATH).mkdir(parents=True, exist_ok=True)
|
Path(ELECTRON_PATH).mkdir(parents=True, exist_ok=True)
|
||||||
self.logger.info("Downloading Electron {}".format(version))
|
self.logger.info("Downloading Electron {}".format(version))
|
||||||
@@ -332,7 +312,7 @@ class EnvironmentUpdater:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def _map_nativefier_file(self, nativefier_settings: dict) -> EnvironmentComponent:
|
def _map_nativefier_file(self, nativefier_settings: dict) -> EnvironmentComponent:
|
||||||
url = NATIVEFIER_URL.format(version=nativefier_settings['version'])
|
url = URL_NATIVEFIER.format(version=nativefier_settings['version'])
|
||||||
return EnvironmentComponent(name='nativefier@{}'.format(nativefier_settings['version']),
|
return EnvironmentComponent(name='nativefier@{}'.format(nativefier_settings['version']),
|
||||||
url=url,
|
url=url,
|
||||||
size=self.http_client.get_content_length(url),
|
size=self.http_client.get_content_length(url),
|
||||||
|
|||||||
Reference in New Issue
Block a user