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