Skip to content
Snippets Groups Projects
Select Git revision
  • edeea7c2e8a51a0fbd4af7b50f69d7a42897cc1d
  • master default protected
2 results

publish_video.c

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    publish_video.c 907 B
    #include <unistd.h>
    #include <libgen.h>
    #include <sys/stat.h>
    
    #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 (access(destdir, F_OK) && mkdir(destdir, 02775))
    		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;
    }