mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Cfg: Convert 'app.setup_completed'
This commit is contained in:
parent
ac9e79bfa0
commit
1c00d41b06
@ -171,7 +171,7 @@ public class Xoae_app implements Xoa_app, Gfo_invk {
|
|||||||
if (Launch_done()) return;
|
if (Launch_done()) return;
|
||||||
xwiki_mgr__sitelink_mgr.Init_by_app();
|
xwiki_mgr__sitelink_mgr.Init_by_app();
|
||||||
stage = Xoa_stage_.Tid_launch;
|
stage = Xoa_stage_.Tid_launch;
|
||||||
user.Cfg_mgr().Setup_mgr().Setup_run_check(this); log_bfr.Add("app.upgrade.done");
|
Xouc_setup_mgr.Setup_run_check(this); log_bfr.Add("app.upgrade.done");
|
||||||
user.Wiki().Init_assert(); // NOTE: must assert wiki and load langs first, else will be asserted during Portal_mgr().Init(), which will cause IndexOutOfBounds; DATE:2014-10-04
|
user.Wiki().Init_assert(); // NOTE: must assert wiki and load langs first, else will be asserted during Portal_mgr().Init(), which will cause IndexOutOfBounds; DATE:2014-10-04
|
||||||
gplx.xowa.addons.users.wikis.regys.Xou_regy_addon.Init(this);
|
gplx.xowa.addons.users.wikis.regys.Xou_regy_addon.Init(this);
|
||||||
}
|
}
|
||||||
|
@ -18,18 +18,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||||
public class Xou_cfg implements Gfo_invk {
|
public class Xou_cfg implements Gfo_invk {
|
||||||
public Xou_cfg(Xoue_user user) {
|
public Xou_cfg(Xoue_user user) {
|
||||||
this.user = user;
|
pages_mgr = new Xouc_pages_mgr(this);
|
||||||
pages_mgr = new Xouc_pages_mgr(this); setup_mgr = new Xouc_setup_mgr(user);
|
|
||||||
}
|
}
|
||||||
public Xoue_user User() {return user;} private Xoue_user user;
|
|
||||||
public Xouc_pages_mgr Pages_mgr() {return pages_mgr;} private Xouc_pages_mgr pages_mgr;
|
public Xouc_pages_mgr Pages_mgr() {return pages_mgr;} private Xouc_pages_mgr pages_mgr;
|
||||||
public Xouc_setup_mgr Setup_mgr() {return setup_mgr;} private Xouc_setup_mgr setup_mgr;
|
|
||||||
public Xou_log_mgr Log_mgr() {return log_mgr;} private final Xou_log_mgr log_mgr = new Xou_log_mgr();
|
public Xou_log_mgr Log_mgr() {return log_mgr;} private final Xou_log_mgr log_mgr = new Xou_log_mgr();
|
||||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||||
if (ctx.Match(k, Invk_pages)) return pages_mgr;
|
if (ctx.Match(k, Invk_pages)) return pages_mgr;
|
||||||
else if (ctx.Match(k, Invk_setup)) return setup_mgr;
|
|
||||||
else if (ctx.Match(k, Invk_log)) return log_mgr;
|
else if (ctx.Match(k, Invk_log)) return log_mgr;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public static final String Invk_pages = "pages", Invk_setup = "setup", Invk_log = "log";
|
public static final String Invk_pages = "pages", Invk_log = "log";
|
||||||
}
|
}
|
||||||
|
@ -17,41 +17,33 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||||
import gplx.core.envs.*;
|
import gplx.core.envs.*;
|
||||||
public class Xouc_setup_mgr implements Gfo_invk {
|
public class Xouc_setup_mgr {
|
||||||
public Xouc_setup_mgr(Xoue_user user) {this.user = user;}
|
public static void Setup_run_check(Xoae_app app) {
|
||||||
public Xoue_user User() {return user;} private Xoue_user user;
|
|
||||||
private String setup_completed = "";
|
|
||||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
|
||||||
if (ctx.Match(k, Invk_setup_completed)) return setup_completed;
|
|
||||||
else if (ctx.Match(k, Invk_setup_completed_)) setup_completed = m.ReadStr("v");
|
|
||||||
return this;
|
|
||||||
} private static final String Invk_setup_completed = "setup_completed", Invk_setup_completed_ = "setup_completed_";
|
|
||||||
public void Setup_run_check(Xoae_app app) {
|
|
||||||
byte op_sys_tid = Op_sys.Cur().Tid();
|
byte op_sys_tid = Op_sys.Cur().Tid();
|
||||||
switch (op_sys_tid) {
|
switch (op_sys_tid) {
|
||||||
case Op_sys.Tid_drd:
|
case Op_sys.Tid_drd:
|
||||||
case Op_sys.Tid_wnt: return;
|
case Op_sys.Tid_wnt: return;
|
||||||
}
|
}
|
||||||
String op_sys_name = Xoa_app_.Op_sys_str;
|
String op_sys_name = Xoa_app_.Op_sys_str;
|
||||||
|
String setup_completed = app.Cfg().Get_str_app_or("xowa.app.session.setup_completed", "");
|
||||||
String[] plats_ary = String_.Split(setup_completed, ";");
|
String[] plats_ary = String_.Split(setup_completed, ";");
|
||||||
int plats_ary_len = plats_ary.length;
|
int plats_ary_len = plats_ary.length;
|
||||||
for (int i = 0; i < plats_ary_len; i++) {
|
for (int i = 0; i < plats_ary_len; i++) {
|
||||||
if (String_.Eq(plats_ary[i], op_sys_name)) return;
|
if (String_.Eq(plats_ary[i], op_sys_name)) return;
|
||||||
}
|
}
|
||||||
Io_url setup_url = app.Fsys_mgr().Root_dir().GenSubFil_nest("bin", op_sys_name, "xowa", "script", "setup_lua.sh");
|
Io_url setup_url = app.Fsys_mgr().Root_dir().GenSubFil_nest("bin", op_sys_name, "xowa", "script", "setup_lua.sh");
|
||||||
Run("sh", String_.Format("\"{0}\" \"{1}\"", setup_url.Raw(), app.Fsys_mgr().Root_dir()));
|
|
||||||
setup_completed += op_sys_name + ";";
|
String exe = "sh";
|
||||||
app.Cfg_mgr().Set_by_all("app.user.cfg.setup.setup_completed", setup_completed);
|
String arg = String_.Format("\"{0}\" \"{1}\"", setup_url.Raw(), app.Fsys_mgr().Root_dir());
|
||||||
app.Cfg_mgr().Db_save_txt();
|
|
||||||
}
|
|
||||||
private boolean Run(String exe, String arg) {
|
|
||||||
boolean pass = false; String fail = "";
|
boolean pass = false; String fail = "";
|
||||||
try {pass = new Process_adp().Exe_url_(Io_url_.new_fil_(exe)).Args_str_(arg).Run_wait_sync().Exit_code_pass();}
|
try {pass = new Process_adp().Exe_url_(Io_url_.new_fil_(exe)).Args_str_(arg).Run_wait_sync().Exit_code_pass();}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
fail = Err_.Message_gplx_full(e);
|
fail = Err_.Message_gplx_full(e);
|
||||||
}
|
}
|
||||||
if (!pass)
|
if (!pass)
|
||||||
user.Appe().Usr_dlg().Prog_many("", "", "process exec failed: ~{0} ~{1} ~{2}", exe, arg, fail);
|
app.Usr_dlg().Prog_many("", "", "process exec failed: ~{0} ~{1} ~{2}", exe, arg, fail);
|
||||||
return pass;
|
|
||||||
|
setup_completed += op_sys_name + ";";
|
||||||
|
app.Cfg().Set_str_app("xowa.app.session.setup_completed", setup_completed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user