#include #include #include #include "util.h" int main(int argc, char *argv[]) { char *src, *dest, *destdir; if (argc != 5) return 1; av_register_all(); init_env(); init_avlogbuf(); jobid = atoi(argv[1]); ping_job(jobid, "running", 0); src = buildpath(getenv(WORKER_TMP), jstr(jlookup(argv[4], "source"), 0)); destdir = buildpath(getenv(WORKER_RELEASED), dirname(jstr(jlookup(argv[4], "path"), 0))); if (mkdir(destdir, 02775) && errno != EEXIST) job_failed("Could not create target directory \"%s\": %s", destdir, strerror(errno)); dest = buildpath(getenv(WORKER_RELEASED), jstr(jlookup(argv[4], "path"), 0)); overwrite_check(dest, 0, 0); if (rename(src, dest)) job_failed("Overwriting target file failed: %s", strerror(errno)); ping_job(jobid, "finished", "{%s, \"log\": \"%s\"}", json_fileinfo(dest), jescape(get_avlogbuf())); return 0; }