You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.5 KiB
45 lines
1.5 KiB
from cement.core.controller import CementBaseController, expose
|
|
from cement.core import handler, hook
|
|
from ee.core.download import EEDownload
|
|
from ee.core.logging import Log
|
|
import time
|
|
import os
|
|
|
|
|
|
def ee_update_hook(app):
|
|
# do something with the ``app`` object here.
|
|
pass
|
|
|
|
|
|
class EEUpdateController(CementBaseController):
|
|
class Meta:
|
|
label = 'ee_update'
|
|
stacked_on = 'base'
|
|
aliases = ['update']
|
|
aliases_only = True
|
|
stacked_type = 'nested'
|
|
description = ('update EasyEngine to latest version')
|
|
usage = "ee update"
|
|
|
|
@expose(hide=True)
|
|
def default(self):
|
|
filename = "eeupdate" + time.strftime("%Y%m%d-%H%M%S")
|
|
EEDownload.download(self, [["http://rt.cx/eeup",
|
|
"/tmp/{0}".format(filename),
|
|
"update script"]])
|
|
try:
|
|
Log.info(self, "updating EasyEngine, please wait...")
|
|
os.system("bash /tmp/{0}".format(filename))
|
|
except OSError as e:
|
|
Log.debug(self, str(e))
|
|
Log.error(self, "EasyEngine update failed !")
|
|
except Exception as e:
|
|
Log.debug(self, str(e))
|
|
Log.error(self, "EasyEngine update failed !")
|
|
|
|
|
|
def load(app):
|
|
# register the plugin class.. this only happens if the plugin is enabled
|
|
handler.register(EEUpdateController)
|
|
# register a hook (function) to run after arguments are parsed.
|
|
hook.register('post_argument_parsing', ee_update_hook)
|
|
|