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;
|
||||
xwiki_mgr__sitelink_mgr.Init_by_app();
|
||||
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
|
||||
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.*;
|
||||
public class Xou_cfg implements Gfo_invk {
|
||||
public Xou_cfg(Xoue_user user) {
|
||||
this.user = user;
|
||||
pages_mgr = new Xouc_pages_mgr(this); setup_mgr = new Xouc_setup_mgr(user);
|
||||
pages_mgr = new Xouc_pages_mgr(this);
|
||||
}
|
||||
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_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 Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
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;
|
||||
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.*;
|
||||
import gplx.core.envs.*;
|
||||
public class Xouc_setup_mgr implements Gfo_invk {
|
||||
public Xouc_setup_mgr(Xoue_user user) {this.user = user;}
|
||||
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) {
|
||||
public class Xouc_setup_mgr {
|
||||
public static void Setup_run_check(Xoae_app app) {
|
||||
byte op_sys_tid = Op_sys.Cur().Tid();
|
||||
switch (op_sys_tid) {
|
||||
case Op_sys.Tid_drd:
|
||||
case Op_sys.Tid_wnt: return;
|
||||
}
|
||||
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, ";");
|
||||
int plats_ary_len = plats_ary.length;
|
||||
for (int i = 0; i < plats_ary_len; i++) {
|
||||
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");
|
||||
Run("sh", String_.Format("\"{0}\" \"{1}\"", setup_url.Raw(), app.Fsys_mgr().Root_dir()));
|
||||
setup_completed += op_sys_name + ";";
|
||||
app.Cfg_mgr().Set_by_all("app.user.cfg.setup.setup_completed", setup_completed);
|
||||
app.Cfg_mgr().Db_save_txt();
|
||||
}
|
||||
private boolean Run(String exe, String arg) {
|
||||
|
||||
String exe = "sh";
|
||||
String arg = String_.Format("\"{0}\" \"{1}\"", setup_url.Raw(), app.Fsys_mgr().Root_dir());
|
||||
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();}
|
||||
catch (Exception e) {
|
||||
fail = Err_.Message_gplx_full(e);
|
||||
}
|
||||
if (!pass)
|
||||
user.Appe().Usr_dlg().Prog_many("", "", "process exec failed: ~{0} ~{1} ~{2}", exe, arg, fail);
|
||||
return pass;
|
||||
app.Usr_dlg().Prog_many("", "", "process exec failed: ~{0} ~{1} ~{2}", exe, arg, fail);
|
||||
|
||||
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