diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c')
-rw-r--r-- | nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c b/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c deleted file mode 100644 index c8e91813b774..000000000000 --- a/nixpkgs/pkgs/tools/misc/execline/execlineb-wrapper.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * A wrapper around execlineb, which provides all execline - * tools on execlineb’s PATH. - * It is implemented as a C program, because on non-Linux, - * nested shebang lines are not supported. - */ - -#include <stdlib.h> -#include <string.h> - -#include <skalibs/stralloc.h> -#include <skalibs/djbunix.h> -#include <skalibs/strerr2.h> -#include <skalibs/env.h> -#include <skalibs/exec.h> - -#define dienomem() strerr_diefu1sys(111, "stralloc_catb") - -// macros from outside -/* const char* EXECLINEB_PATH; */ -/* const char* EXECLINE_BIN_PATH; */ - -int main(int argc, char const* argv[], char const *const *envp) -{ - PROG = "execlineb-wrapper"; - - char const* path = getenv("PATH"); - stralloc path_modif = STRALLOC_ZERO; - - // modify PATH if unset or EXECLINEB_BIN_PATH is not yet there - if ( !path || ! strstr(path, EXECLINE_BIN_PATH())) { - // prepend our execline path - if ( ! stralloc_cats(&path_modif, "PATH=") - || ! stralloc_cats(&path_modif, EXECLINE_BIN_PATH()) ) dienomem(); - // old path was not empty - if ( path && path[0] ) { - if ( ! stralloc_catb(&path_modif, ":", 1) - || ! stralloc_cats(&path_modif, path) ) dienomem(); - } - // append final \0 - if ( ! stralloc_0(&path_modif) ) dienomem(); - } - - // exec into execlineb and append path_modif to the environment - xmexec_aem( - EXECLINEB_PATH(), - argv, - envp, - path_modif.s, path_modif.len - ); -} |