From 198e456bf1eec2db49aaa986b3e1a3fc643809f4 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Sun, 12 Apr 2020 11:41:17 +1100 Subject: [PATCH] add -m options at 66-enable tool --- src/lib66/ssexec_enable.c | 10 ++++++---- src/lib66/ssexec_help.c | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lib66/ssexec_enable.c b/src/lib66/ssexec_enable.c index ca84fd68..693a1449 100644 --- a/src/lib66/ssexec_enable.c +++ b/src/lib66/ssexec_enable.c @@ -67,7 +67,7 @@ void start_parser(stralloc *list,ssexec_t *info, unsigned int *nbsv,uint8_t FORC for (;i < len; i += strlen(list->s + i) + 1) { char *name = list->s + i ; - if (!parse_service_before(info,&parsed_list,&tree_list,name,nbsv,&sasv,FORCE)) + if (!parse_service_before(info,&parsed_list,&tree_list,name,nbsv,&sasv,FORCE,CONF)) log_dieu(LOG_EXIT_SYS,"parse service file: ",name,": or its dependencies") ; } stralloc_free(&sasv) ; @@ -83,12 +83,13 @@ void start_write(stralloc *tostart,unsigned int *nclassic,unsigned int *nlongrun { sv_alltype_ref sv = &genalloc_s(sv_alltype,gasv)[i] ; char *name = keep.s + sv->cname.name ; + r = write_services(sv, workdir,FORCE,CONF) ; if (!r) log_dieu_nclean(LOG_EXIT_SYS,&cleanup,"write service: ",name) ; if (r > 1) continue ; //service already added - + log_trace("write resolve file of: ",name) ; if (!ss_resolve_setnwrite(sv,info,workdir)) log_dieu_nclean(LOG_EXIT_SYS,&cleanup,"write revolve file for: ",name) ; @@ -125,7 +126,7 @@ int ssexec_enable(int argc, char const *const *argv,char const *const *envp,ssex for (;;) { - int opt = getopt_args(argc,argv, ">cCfFS", &l) ; + int opt = getopt_args(argc,argv, ">cmCfFS", &l) ; if (opt == -1) break ; if (opt == -2) log_die(LOG_EXIT_USER,"options must be set first") ; switch (opt) @@ -135,7 +136,8 @@ int ssexec_enable(int argc, char const *const *argv,char const *const *envp,ssex case 'F' : if (FORCE) log_usage(usage_enable) ; FORCE = 2 ; break ; case 'c' : if (CONF) log_usage(usage_enable) ; CONF = 1 ; break ; - case 'C' : if (CONF) log_usage(usage_enable) ; CONF = 2 ; break ; + case 'm' : if (CONF) log_usage(usage_enable) ; CONF = 2 ; break ; + case 'C' : if (CONF) log_usage(usage_enable) ; CONF = 3 ; break ; case 'S' : start = 1 ; break ; default : log_usage(usage_enable) ; } diff --git a/src/lib66/ssexec_help.c b/src/lib66/ssexec_help.c index 487510c0..dee347df 100644 --- a/src/lib66/ssexec_help.c +++ b/src/lib66/ssexec_help.c @@ -14,7 +14,7 @@ #include <66/ssexec.h> -char const *usage_enable = "66-enable [ -h ] [ -z ] [ -v verbosity ] [ - l live ] [ -t tree ] [ -f|F ] [ -c|C ] [ -S ] service(s)" ; +char const *usage_enable = "66-enable [ -h ] [ -z ] [ -v verbosity ] [ - l live ] [ -t tree ] [ -f|F ] [ -c|m|C ] [ -S ] service(s)" ; char const *help_enable = "66-enable <options> service(s)\n" @@ -27,7 +27,8 @@ char const *help_enable = " -t: name of the tree to use\n" " -f: force to overwrite the service(s)\n" " -F: force to overwrite the service(s) and it dependencies\n" -" -c: merge it environment configuration file from frontend file\n" +" -c: only appends new key=value pairs at environment configuration file from frontend file\n" +" -m: appends new key=value and merge existing one at environment configuration file from frontend file\n" " -C: overwrite it environment configuration file from frontend file\n" " -S: enable and start the service\n" ; -- GitLab