From c7628ad873b4e5c322ad5f171cd24c93d7214023 Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Sat, 15 Oct 2022 23:53:08 +1100
Subject: [PATCH] remove ssexec_dbctl and add ssexec_parse function

---
 src/lib66/exec/ssexec_main.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/src/lib66/exec/ssexec_main.c b/src/lib66/exec/ssexec_main.c
index e63ec61d..1d198af2 100644
--- a/src/lib66/exec/ssexec_main.c
+++ b/src/lib66/exec/ssexec_main.c
@@ -67,13 +67,8 @@ void ssexec_set_info(ssexec_t *info)
     if (!r) log_die_nomem("stralloc") ;
     if(r < 0) log_die(LOG_EXIT_SYS,"live: ",info->live.s," must be an absolute path") ;
 
-    if (!stralloc_copy(&info->livetree,&info->live)) log_die_nomem("stralloc") ;
     if (!stralloc_copy(&info->scandir,&info->live)) log_die_nomem("stralloc") ;
 
-    r = set_livetree(&info->livetree,info->owner) ;
-    if (!r) log_die_nomem("stralloc") ;
-    if(r < 0) log_die(LOG_EXIT_SYS,"livetree: ",info->livetree.s," must be an absolute path") ;
-
     r = set_livescan(&info->scandir,info->owner) ;
     if (!r) log_die_nomem("stralloc") ;
     if(r < 0) log_die(LOG_EXIT_SYS,"scandir: ",info->scandir.s," must be an absolute path") ;
@@ -90,7 +85,9 @@ static inline void info_help (char const *help,char const *usage)
 
 static inline void append_opts(char *opts,size_t baselen, ssexec_func_t *func)
 {
-    if ((*func) == &ssexec_init)
+    if ((*func) == &ssexec_parse)
+        auto_strings(opts + baselen,OPTS_PARSE) ;
+    else if ((*func) == &ssexec_init)
         auto_strings(opts + baselen,OPTS_INIT) ;
     else if ((*func) == &ssexec_enable)
         auto_strings(opts + baselen,OPTS_ENABLE) ;
@@ -102,8 +99,6 @@ static inline void append_opts(char *opts,size_t baselen, ssexec_func_t *func)
         auto_strings(opts + baselen,OPTS_STOP) ;
     else if ((*func) == &ssexec_svctl)
         auto_strings(opts + baselen,OPTS_SVCTL) ;
-    else if ((*func) == &ssexec_dbctl)
-        auto_strings(opts + baselen,OPTS_DBCTL) ;
     else if ((*func) == &ssexec_env)
         auto_strings(opts + baselen,OPTS_ENV) ;
     else if ((*func) == &ssexec_all)
@@ -124,6 +119,7 @@ int ssexec_main(int argc, char const *const *argv,char const *const *envp,ssexec
     /** 30 options should be large enough */
     char opts[30] ;
     char const *main = "hv:l:t:T:z" ;
+    char str[UINT_FMT] ;
     size_t mainlen = strlen(main) ;
 
     auto_strings(opts,main) ;
@@ -148,7 +144,6 @@ int ssexec_main(int argc, char const *const *argv,char const *const *envp,ssexec
                             break ;
                 case 'l' :
 
-                    char str[UINT_FMT] ;
                     str[uint_fmt(str, SS_MAX_PATH)] = 0 ;
 
                     if (strlen(l.arg) > SS_MAX_PATH)
@@ -162,7 +157,6 @@ int ssexec_main(int argc, char const *const *argv,char const *const *envp,ssexec
 
                 case 't' :
 
-                    char str[UINT_FMT] ;
                     str[uint_fmt(str, SS_MAX_TREENAME)] = 0 ;
 
                     if (strlen(l.arg) > SS_MAX_TREENAME)
@@ -227,7 +221,7 @@ int ssexec_main(int argc, char const *const *argv,char const *const *envp,ssexec
 
     nargv[n] = 0 ;
 
-    r = (*func)(n,nargv,envp,info) ;
+    r = (*func)(n, nargv, info) ;
 
     ssexec_free(info) ;
 
-- 
GitLab