From: NeilBrown Date: Sun, 18 Jun 2023 22:08:52 +0000 (+1000) Subject: server: allow auto-startup to be configurable. X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=b8da5fb2d8d3f97f20d25c5a5725f07a7b567f8d;p=edlib.git server: allow auto-startup to be configurable. Use a "startup-" command for starting, and check a config variable to decide whether to actually start. Signed-off-by: NeilBrown --- diff --git a/edlib.ini b/edlib.ini index 63de08ab..744a2f0e 100644 --- a/edlib.ini +++ b/edlib.ini @@ -67,7 +67,9 @@ lib-make = interactive-cmd-grep interactive-cmd-git-grep interactive-cmd-next-match -lib-server = ALWAYS +lib-server = + startup-server + interactive-cmd-server-start lib-macro = macro:capture lib-aspell = Spell:Check diff --git a/lib-autosave.c b/lib-autosave.c index 176ea699..bdf0132b 100644 --- a/lib-autosave.c +++ b/lib-autosave.c @@ -330,7 +330,7 @@ DEF_CMD(check_autosave_dir) dirname = strconcat(ci->focus, home ?: "", "/.edlib_autosave"); dir = opendir(dirname); if (!dir) - return 1; + return Efallthrough; while ((de = readdir(dir)) != NULL) { if (de->d_name[0] == '.') continue; @@ -345,7 +345,7 @@ DEF_CMD(check_autosave_dir) if (de) call("editor:notify:Message:broadcast", ci->focus, 0, NULL, "Autosave files exist - use \"recover\" command to view them."); - return 1; + return Efallthrough; } void edlib_init(struct pane *ed safe) diff --git a/python/lib-server.py b/python/lib-server.py index 5b3c93bb..821d0714 100755 --- a/python/lib-server.py +++ b/python/lib-server.py @@ -373,11 +373,16 @@ else: def server_rebind(key, focus, **a): global server_sock + msg = "" + if key.startswith("interactive-cmd"): + msg = "Server started" if server_sock: # stop reading this file focus.call("event:free", server_accept) server_sock.close() server_sock = None + msg="Server restarted" + try: os.unlink(sockpath) except OSError: @@ -394,9 +399,12 @@ else: focus.root.call("event:read", s.fileno(), server_accept) server_sock = s if key != "key": - focus.call("Message", "Server restarted") + focus.call("Message", msg) return 1 - server_rebind("key", edlib.editor) + def server_autostart(key, focus, **a): + if focus["server:autostart"] == 'yes': + server_rebind(key, focus) + edlib.editor.call("global-set-command", "startup-server", server_autostart) edlib.editor.call("global-set-command", "lib-server:done", server_done) edlib.editor.call("global-set-command", "interactive-cmd-server-start", server_rebind)