mirror of
https://github.com/YunoHost/moulinette.git
synced 2024-09-03 20:06:31 +02:00
I'm batman
This commit is contained in:
parent
f075a207cf
commit
8d901d74cf
1 changed files with 25 additions and 16 deletions
|
@ -416,18 +416,23 @@ def app_install(app, label=None, args=None):
|
||||||
# Move scripts and manifest to the right place
|
# Move scripts and manifest to the right place
|
||||||
os.system('cp '+ app_tmp_folder +'/manifest.json ' + app_setting_path)
|
os.system('cp '+ app_tmp_folder +'/manifest.json ' + app_setting_path)
|
||||||
os.system('cp -R ' + app_tmp_folder +'/scripts '+ app_setting_path)
|
os.system('cp -R ' + app_tmp_folder +'/scripts '+ app_setting_path)
|
||||||
if hook_exec(app_tmp_folder + '/scripts/install', args_dict) == 0:
|
try:
|
||||||
shutil.rmtree(app_tmp_folder)
|
if hook_exec(app_tmp_folder + '/scripts/install', args_dict) == 0:
|
||||||
os.system('chmod -R 400 '+ app_setting_path)
|
shutil.rmtree(app_tmp_folder)
|
||||||
os.system('chown -R root: '+ app_setting_path)
|
os.system('chmod -R 400 '+ app_setting_path)
|
||||||
os.system('chown -R admin: '+ app_setting_path +'/scripts')
|
os.system('chown -R root: '+ app_setting_path)
|
||||||
app_ssowatconf()
|
os.system('chown -R admin: '+ app_setting_path +'/scripts')
|
||||||
win_msg(_("Installation complete"))
|
app_ssowatconf()
|
||||||
else:
|
win_msg(_("Installation complete"))
|
||||||
#TODO: display script fail messages
|
else:
|
||||||
|
#TODO: display script fail messages
|
||||||
|
shutil.rmtree(app_setting_path)
|
||||||
|
shutil.rmtree(app_tmp_folder)
|
||||||
|
raise YunoHostError(1, _("Installation failed"))
|
||||||
|
except KeyboardInterrupt, EOFError:
|
||||||
shutil.rmtree(app_setting_path)
|
shutil.rmtree(app_setting_path)
|
||||||
shutil.rmtree(app_tmp_folder)
|
shutil.rmtree(app_tmp_folder)
|
||||||
raise YunoHostError(1, _("Installation failed"))
|
raise YunoHostError(125, _("Interrupted"))
|
||||||
|
|
||||||
|
|
||||||
def app_remove(app):
|
def app_remove(app):
|
||||||
|
@ -787,14 +792,16 @@ def _extract_app_from_file(path, remove=False):
|
||||||
"""
|
"""
|
||||||
global app_tmp_folder
|
global app_tmp_folder
|
||||||
|
|
||||||
|
print(_('Extracting...'))
|
||||||
|
|
||||||
if os.path.exists(app_tmp_folder): shutil.rmtree(app_tmp_folder)
|
if os.path.exists(app_tmp_folder): shutil.rmtree(app_tmp_folder)
|
||||||
os.makedirs(app_tmp_folder)
|
os.makedirs(app_tmp_folder)
|
||||||
|
|
||||||
if ".zip" in path:
|
if ".zip" in path:
|
||||||
extract_result = os.system('cd '+ os.getcwd() +' && unzip '+ path +' -d '+ app_tmp_folder)
|
extract_result = os.system('cd '+ os.getcwd() +' && unzip '+ path +' -d '+ app_tmp_folder +' > /dev/null 2>&1')
|
||||||
if remove: os.remove(path)
|
if remove: os.remove(path)
|
||||||
elif ".tar" in path:
|
elif ".tar" in path:
|
||||||
extract_result = os.system('cd '+ os.getcwd() +' && tar -xf '+ path +' -C '+ app_tmp_folder)
|
extract_result = os.system('cd '+ os.getcwd() +' && tar -xf '+ path +' -C '+ app_tmp_folder +' > /dev/null 2>&1')
|
||||||
if remove: os.remove(path)
|
if remove: os.remove(path)
|
||||||
elif (path[:1] == '/' and os.path.exists(path)) or (os.system('cd '+ os.getcwd() +'/'+ path) == 0):
|
elif (path[:1] == '/' and os.path.exists(path)) or (os.system('cd '+ os.getcwd() +'/'+ path) == 0):
|
||||||
shutil.rmtree(app_tmp_folder)
|
shutil.rmtree(app_tmp_folder)
|
||||||
|
@ -817,7 +824,7 @@ def _extract_app_from_file(path, remove=False):
|
||||||
except IOError:
|
except IOError:
|
||||||
raise YunoHostError(1, _("Invalid App file"))
|
raise YunoHostError(1, _("Invalid App file"))
|
||||||
|
|
||||||
win_msg(_("Sources extracted"))
|
print(_('OK'))
|
||||||
|
|
||||||
return manifest
|
return manifest
|
||||||
|
|
||||||
|
@ -835,13 +842,15 @@ def _fetch_app_from_git(app):
|
||||||
"""
|
"""
|
||||||
global app_tmp_folder
|
global app_tmp_folder
|
||||||
|
|
||||||
|
print(_('Downloading...'))
|
||||||
|
|
||||||
if ('@' in app) or ('http://' in app) or ('https://' in app):
|
if ('@' in app) or ('http://' in app) or ('https://' in app):
|
||||||
if "github.com" in app:
|
if "github.com" in app:
|
||||||
url = app.replace("git@github.com:", "https://github.com/")
|
url = app.replace("git@github.com:", "https://github.com/")
|
||||||
if ".git" in url[-4:]: url = url[:-4]
|
if ".git" in url[-4:]: url = url[:-4]
|
||||||
if "/" in url [-1:]: url = url[:-1]
|
if "/" in url [-1:]: url = url[:-1]
|
||||||
url = url + "/archive/master.zip"
|
url = url + "/archive/master.zip"
|
||||||
if os.system('wget "'+ url +'" -O "'+ app_tmp_folder +'.zip"') == 0:
|
if os.system('wget "'+ url +'" -O "'+ app_tmp_folder +'.zip" > /dev/null 2>&1') == 0:
|
||||||
return _extract_app_from_file(app_tmp_folder +'.zip', remove=True)
|
return _extract_app_from_file(app_tmp_folder +'.zip', remove=True)
|
||||||
|
|
||||||
git_result = os.system('git clone '+ app +' '+ app_tmp_folder)
|
git_result = os.system('git clone '+ app +' '+ app_tmp_folder)
|
||||||
|
@ -868,7 +877,7 @@ def _fetch_app_from_git(app):
|
||||||
if ".git" in url[-4:]: url = url[:-4]
|
if ".git" in url[-4:]: url = url[:-4]
|
||||||
if "/" in url [-1:]: url = url[:-1]
|
if "/" in url [-1:]: url = url[:-1]
|
||||||
url = url + "/archive/"+ str(app_info['git']['revision']) + ".zip"
|
url = url + "/archive/"+ str(app_info['git']['revision']) + ".zip"
|
||||||
if os.system('wget "'+ url +'" -O "'+ app_tmp_folder +'.zip"') == 0:
|
if os.system('wget "'+ url +'" -O "'+ app_tmp_folder +'.zip" > /dev/null 2>&1') == 0:
|
||||||
return _extract_app_from_file(app_tmp_folder +'.zip', remove=True)
|
return _extract_app_from_file(app_tmp_folder +'.zip', remove=True)
|
||||||
|
|
||||||
app_tmp_folder = install_tmp +'/'+ app
|
app_tmp_folder = install_tmp +'/'+ app
|
||||||
|
@ -880,7 +889,7 @@ def _fetch_app_from_git(app):
|
||||||
if not git_result == git_result_2 == 0:
|
if not git_result == git_result_2 == 0:
|
||||||
raise YunoHostError(22, _("Sources fetching failed"))
|
raise YunoHostError(22, _("Sources fetching failed"))
|
||||||
|
|
||||||
win_msg(_("Repository fetched"))
|
print(_('OK'))
|
||||||
|
|
||||||
return manifest
|
return manifest
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue