#include #include #include #include #include #include #include #include #include #include "config.h" #define USAGE "mvwt [-c cachedir] id" #define WALLTAKER_URL "walltaker.joi.how" int main(int argc, char *const *argv) { int opt; subgetopt l = SUBGETOPT_ZERO; stralloc envmod = STRALLOC_ZERO; PROG = "mvwt"; const char *cachedir = CACHE_DIR; while ((opt = subgetopt_r(argc, (const char * const*) argv, "c:", &l)) != -1) { switch (opt) { case 'c': /* wallpaper cache directory */ cachedir = l.arg; break; default: printf("switch %d", argc); strerr_dieusage(100, USAGE); break; } } argc -= l.ind; argv += l.ind; if (argc != 1) { printf("argc %d", argc); strerr_dieusage(100, USAGE); } if (chdir(cachedir) < 0) strerr_diefu(111, "chdir to cache dir " "(mkdir it if it doesn't exist)"); char const *wtc_argv[] = { "s6-tlsclient", "-N", "-Z", "--", WALLTAKER_URL, "443", "mvwtc", argv[0], 0 }; if (!env_addmodif(&envmod, "CADIR", CADIR_DIR)) strerr_diefu(111, "set CADIR"); xmexec_m(wtc_argv, envmod.s, envmod.len); return 111; /* uh oh! */ }