1 /* ISC license. */
2
3 #include <string.h>
4
5 #include <skalibs/strerr2.h>
6 #include <skalibs/exec.h>
7
8 #define USAGE "export variable value prog..."
9
main(int argc,char const * const * argv)10 int main (int argc, char const *const *argv)
11 {
12 size_t len1 ;
13 PROG = "export" ;
14 if (argc < 4) strerr_dieusage(100, USAGE) ;
15 len1 = strlen(argv[1]) ;
16 if (memchr(argv[1], '=', len1))
17 strerr_dief2x(100, "invalid variable name: ", argv[1]) ;
18 {
19 size_t len2 = strlen(argv[2]) ;
20 char fmt[len1 + len2 + 2] ;
21 memcpy(fmt, argv[1], len1) ;
22 fmt[len1] = '=' ;
23 memcpy(fmt + len1 + 1, argv[2], len2 + 1) ;
24 xmexec_n(argv+3, fmt, len1 + len2 + 2, 1) ;
25 }
26 }
27