1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

App_update: Add app-update check to startup

This commit is contained in:
gnosygnu
2017-01-06 13:22:19 -05:00
parent 3c1898b9ef
commit 0ef1a82a16
29 changed files with 338 additions and 218 deletions

View File

@@ -36,7 +36,7 @@ public class Xoav_app implements Xoa_app, Gfo_invk {
public Xoav_app(Gfo_usr_dlg usr_dlg, Xoa_app_mode mode, Xog_tab_mgr tab_mgr, String plat_name, Io_url root_dir, Io_url file_dir, Io_url css_dir, Io_url http_root) {
Xoa_app_.Usr_dlg_(usr_dlg); this.usr_dlg = usr_dlg; this.mode = mode;
this.fsys_mgr = new Xoa_fsys_mgr(plat_name, root_dir, root_dir.GenSubDir("wiki"), file_dir, css_dir, http_root);
this.gfs_mgr = new Xoa_gfs_mgr(this, fsys_mgr);
this.gfs_mgr = new Xoa_gfs_mgr("anonymous", this, fsys_mgr);
this.lang_mgr = new Xoa_lang_mgr(this, gfs_mgr);
this.meta_mgr = new Xoa_meta_mgr(this);
this.file__cache_mgr = new Xof_cache_mgr(usr_dlg, null, null);

View File

@@ -21,22 +21,10 @@ public class Xoapi_addon implements Gfo_invk {
public void Ctor_by_app(Xoa_app app) {}
public Xoapi_addon_search Search() {return search;} private final Xoapi_addon_search search = new Xoapi_addon_search();
public Xoapi_addon_bldr Bldr() {return bldr;} private final Xoapi_addon_bldr bldr = new Xoapi_addon_bldr();
public String App__update__restart_cmd() {return app__update__restart_cmd;} private String app__update__restart_cmd = "";
public String App__update__update_db_src() {return app__update__update_db_src;} private String app__update__update_db_src = "http://xowa.org";
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk__search)) return search;
else if (ctx.Match(k, Invk__bldr)) return bldr;
else if (ctx.Match(k, Invk__app__update__restart_cmd)) return app__update__restart_cmd;
else if (ctx.Match(k, Invk__app__update__restart_cmd_)) app__update__restart_cmd = m.ReadStr("v");
else if (ctx.Match(k, Invk__app__update__update_db_src)) return app__update__update_db_src;
else if (ctx.Match(k, Invk__app__update__update_db_src_)) app__update__update_db_src = m.ReadStr("v");
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static final String Invk__search = "search", Invk__bldr = "bldr"
, Invk__app__update__restart_cmd = "app__update__restart_cmd"
, Invk__app__update__restart_cmd_ = "app__update__restart_cmd_"
, Invk__app__update__update_db_src = "app__update__update_db_src"
, Invk__app__update__update_db_src_ = "app__update__update_db_src_"
;
private static final String Invk__search = "search", Invk__bldr = "bldr";
}

View File

@@ -43,7 +43,7 @@ public class Xoa_boot_mgr {
log_wtr = usr_dlg.Log_wkr(); log_wtr.Log_to_session_fmt("env.init: version=~{0}", Xoa_app_.Version);
GfuiEnv_.Init_swt(args, Xoa_app_.class);
Io_url jar_url = Env_.AppUrl();
Xoa_app_.Build_date = Io_mgr.Instance.QueryFil(jar_url).ModifiedTime().XtoUtc().XtoStr_fmt("yyyy-MM-dd HH:mm");
Xoa_app_.Build_date = Io_mgr.Instance.QueryFil(jar_url).ModifiedTime().XtoUtc().XtoStr_fmt(Xoa_app_.Build_date_fmt);
log_wtr.Log_to_session_fmt("env.init: jar_url=~{0}; build_date=~{1}", jar_url.NameAndExt(), Xoa_app_.Build_date);
log_wtr.Log_to_session_fmt("env.init: op_sys=~{0}", Op_sys.Cur().To_str());
}
@@ -73,7 +73,7 @@ public class Xoa_boot_mgr {
try {
app.Sys_cfg().Lang_(System_lang());
String launch_url = arg_mgr.Gui__home_page();
if (launch_url != null) gplx.xowa.guis.views.Xog_startup_tabs_.Manual = launch_url;
if (launch_url != null) gplx.xowa.guis.views.Xog_startup_tabs.Manual = launch_url;
app.Tcp_server().Rdr_port_(arg_mgr.Tcp__port_recv()).Wtr_port_(arg_mgr.Tcp__port_send());
gplx.xowa.apps.servers.http.Http_server_mgr server_mgr = app.Http_server();
server_mgr.Port_(arg_mgr.Http__port());
@@ -92,7 +92,6 @@ public class Xoa_boot_mgr {
if (app_type_is_gui)
GfuiEnv_.ShowMsg(Err_.Message_gplx_full(e));
}
gplx.xowa.apps.setups.Xoa_setup_mgr.Delete_old_files(app);
// launch
app.Launch();

View File

@@ -19,7 +19,9 @@ package gplx.xowa.apps.gfs; import gplx.*; import gplx.xowa.*; import gplx.xowa.
import gplx.langs.gfs.*;
import gplx.xowa.users.*; import gplx.xowa.apps.fsys.*;
public class Xoa_gfs_mgr implements Gfo_invk, Gfo_invk_root_wkr {
public Xoa_gfs_mgr(Gfo_invk root_invk, Xoa_fsys_mgr app_fsys_mgr) {
private final String user_name;
public Xoa_gfs_mgr(String user_name, Gfo_invk root_invk, Xoa_fsys_mgr app_fsys_mgr) {
this.user_name = user_name;
this.root_invk = root_invk; this.app_fsys_mgr = app_fsys_mgr;
GfsCore.Instance.AddCmd(root_invk, Xoae_app.Invk_app);
GfsCore.Instance.AddCmd(root_invk, Xoae_app.Invk_xowa);
@@ -53,7 +55,7 @@ public class Xoa_gfs_mgr implements Gfo_invk, Gfo_invk_root_wkr {
}
private void Run_url_by_type(String type) {
if (String_.Eq(type, "xowa_cfg_app")) Run_url(app_fsys_mgr.Cfg_app_fil());
else if (String_.Eq(type, "xowa.user.os")) gplx.xowa.addons.apps.cfgs.mgrs.dflts.Xocfg_dflt_mgr.Run_os_gfs(this, app_fsys_mgr);
else if (String_.Eq(type, "xowa.user.os")) gplx.xowa.addons.apps.cfgs.mgrs.dflts.Xocfg_dflt_mgr.Run_os_gfs(user_name, this, app_fsys_mgr);
else throw Err_.new_wo_type("invalid gfs type", "type", type);
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {

View File

@@ -18,8 +18,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.apps.setups; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import gplx.xowa.apps.versions.*; import gplx.core.envs.*;
public class Xoa_setup_mgr {
public static void Delete_old_files(Xoae_app app) {
String version_previous = gplx.xowa.guis.views.Xog_startup_tabs_.Version_previous(app);
public static void Launch(Xoae_app app) {
Delete_old_files(app);
gplx.xowa.addons.apps.cfgs.upgrades.Xocfg_upgrade_mgr.Upgrade_cfg_0(app);
Run_cfg_for_os(app);
}
private static void Delete_old_files(Xoae_app app) {
String version_previous = gplx.xowa.guis.views.Xog_startup_tabs.Version_previous(app);
Gfo_usr_dlg usr_dlg = app.Usr_dlg();
Io_url root_dir = app.Fsys_mgr().Root_dir();
Delete_old_dir(usr_dlg, version_previous, "1.8.2.1" , root_dir.GenSubDir_nest("user", "anonymous", "lang"));
@@ -27,14 +32,14 @@ public class Xoa_setup_mgr {
Delete_old_dir(usr_dlg, version_previous, "1.10.2.1" , root_dir.GenSubDir_nest("bin", "any", "javascript"));
Delete_old_dir(usr_dlg, version_previous, "1.10.2.1" , root_dir.GenSubDir_nest("bin", "any", "xowa", "html", "modules"));
}
public static void Delete_old_dir(Gfo_usr_dlg usr_dlg, String version_prv, String version_del, Io_url dir) {
public static void Delete_old_dir(Gfo_usr_dlg usr_dlg, String version_prv, String version_del, Io_url dir) { // TEST:
if (Xoa_version_.Compare(version_prv, version_del) != CompareAble_.Less) return;
usr_dlg.Log_many("", "", "setup:checking if dir exists: version_prv=~{0} version_del=~{1} dir=~{2}", version_prv, version_del, dir.Raw());
if (!Io_mgr.Instance.ExistsDir(dir)) return;
usr_dlg.Log_many("", "", "setup:deleting dir", version_prv, version_del, dir.Raw());
Io_mgr.Instance.DeleteDirDeep(dir);
}
public static void Setup_run_check(Xoae_app app) {
private static void Run_cfg_for_os(Xoae_app app) {
// exit if wnt or drd
byte op_sys_tid = Op_sys.Cur().Tid();
switch (op_sys_tid) {