58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
#include <stdio.h>
|
|
#include <unistd.h>
|
|
|
|
#include <sys/stat.h>
|
|
#include <skalibs/sgetopt.h>
|
|
#include <skalibs/stralloc.h>
|
|
#include <skalibs/env.h>
|
|
#include <skalibs/bytestr.h>
|
|
#include <skalibs/strerr.h>
|
|
#include <skalibs/exec.h>
|
|
|
|
#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! */
|
|
}
|