diff --git a/package/deps.mak b/package/deps.mak index 13d075fcdf52ed7c15c0a39c4291e07959476f3e..1f48e1bbf89f34cab94069e64c66f14a1f648deb 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -5,11 +5,12 @@ src/include/66/66.h: src/include/66/backup.h src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/parser.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h src/include/66/constants.h: src/include/66/config.h src/include/66/parser.h: src/include/66/enum.h -src/66/66-all.o src/66/66-all.lo: src/66/66-all.c +src/66/66-all.o src/66/66-all.lo: src/66/66-all.c src/include/66/config.h src/include/66/constants.h src/include/66/tree.h src/include/66/utils.h src/66/66-dbctl.o src/66/66-dbctl.lo: src/66/66-dbctl.c src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/tree.h src/include/66/utils.h src/66/66-disable.o src/66/66-disable.lo: src/66/66-disable.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/tree.h src/include/66/utils.h src/66/66-enable.o src/66/66-enable.lo: src/66/66-enable.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/parser.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h -src/66/66-init.o src/66/66-init.lo: src/66/66-init.c src/include/66/backup.h src/include/66/constants.h src/include/66/tree.h src/include/66/utils.h +src/66/66-execl.o src/66/66-execl.lo: src/66/66-execl.c +src/66/66-init.o src/66/66-init.lo: src/66/66-init.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/tree.h src/include/66/utils.h src/66/66-scandir.o src/66/66-scandir.lo: src/66/66-scandir.c src/include/66/config.h src/include/66/constants.h src/include/66/utils.h src/66/66-start.o src/66/66-start.lo: src/66/66-start.c src/include/66/backup.h src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h src/66/66-stop.o src/66/66-stop.lo: src/66/66-stop.c src/include/66/backup.h src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h @@ -63,6 +64,8 @@ src/lib66/tree_switch_tobackup.o src/lib66/tree_switch_tobackup.lo: src/lib66/tr 66-disable: src/66/66-disable.o ${LIB66} -loblibs -lskarnet 66-enable: EXTRA_LIBS := 66-enable: src/66/66-enable.o ${LIB66} -loblibs -lskarnet -lexecline -ls6 +66-execl: EXTRA_LIBS := +66-execl: src/66/66-execl.o -loblibs -lskarnet 66-init: EXTRA_LIBS := 66-init: src/66/66-init.o ${LIB66} -loblibs -ls6 -lskarnet 66-scandir: EXTRA_LIBS := diff --git a/package/modes b/package/modes index dc256d2e3c9016b54d9859462cdf3b1445124161..485cbdbf6591e59cd0cf9a92addd0fb0e17afc7b 100644 --- a/package/modes +++ b/package/modes @@ -8,3 +8,4 @@ 66-stop 0755 66-svctl 0755 66-all 0755 +66-execl 0755 diff --git a/package/targets.mak b/package/targets.mak index 1304eadf12eaf3b66053a1387cdb5cf864316ed9..e28837d0040c2a021ce6bff0e7a581022d8de2c7 100644 --- a/package/targets.mak +++ b/package/targets.mak @@ -8,6 +8,7 @@ BIN_TARGETS := \ 66-start \ 66-stop \ 66-svctl \ -66-all +66-all \ +66-execl LIB_DEFS := 66=66 diff --git a/src/66/66-execl.c b/src/66/66-execl.c new file mode 100644 index 0000000000000000000000000000000000000000..5d73de565963fa8642d1f726e4ca5f7266419dc8 --- /dev/null +++ b/src/66/66-execl.c @@ -0,0 +1,47 @@ +/* + * 66-execl.c + * + * Copyright (c) 2018 Eric Vidal <eric@obarun.org> + * + * All rights reserved. + * + * This file is part of Obarun. It is subject to the license terms in + * the LICENSE file found in the top-level directory of this + * distribution. + * This file may not be copied, modified, propagated, or distributed + * except according to the terms contained in the LICENSE file./ + */ + +#include <oblibs/string.h> +#include <oblibs/stralist.h> +#include <oblibs/error2.h> + +#include <skalibs/genalloc.h> +#include <skalibs/djbunix.h> +#include <skalibs/stralloc.h> + + +int main(int argc, char const *const *argv, char const *const *envp) +{ + + int r ; + PROG = "66-execl" ; + genalloc ga = GENALLOC_ZERO ; + if (argc < 2) strerr_diefu1x(111,"missing arguments") ; + argc-- ; argv++ ; + for (int i = 0 ;i < argc;i++,argv++) + { + r = clean_val(&ga,*argv) ; + if (!r) strerr_diefu2x(111,"clean_val: ",*argv) ; + } + + unsigned int m = genalloc_len(stralist,&ga) ; + char const *newarg[m+1] ; + unsigned int n = 0 ; + for (unsigned int i =0; i < genalloc_len(stralist,&ga); i++) + newarg[n++] = gaistr(&ga,i) ; + + newarg[n] = 0 ; + + xpathexec_run(newarg[0],newarg,envp) ; +} diff --git a/src/66/deps-exe/66-execl b/src/66/deps-exe/66-execl new file mode 100644 index 0000000000000000000000000000000000000000..d24233ce5bfe994938345010c182fd45c2a1c1e9 --- /dev/null +++ b/src/66/deps-exe/66-execl @@ -0,0 +1,2 @@ +-loblibs +-lskarnet