diff --git a/src/server/slavefuncs.c b/src/server/slavefuncs.c --- a/src/server/slavefuncs.c +++ b/src/server/slavefuncs.c @@ -386,3 +386,20 @@ int uploadOutput(char *pathtoOutput, cha // @FUTURE: Keep track of files that we were unable to upload, and upload them later } } + + +int unpackJob(char *pathtoTar, int jobnum){ + char *tarcmd; /* Command to run for tar. Migrate to libtar sometime */ + char *outdir; /* Output Directory for tar */ + + _distren_asprintf(&outdir, "/tmp/distren/job%d", jobnum); + mkdir("/tmp/distren", 0750); /* @FIXME: Change to tmpdir once it exists */ + mkdir(outdir, 0750); + + _distren_asprintf(&tarcmd, "tar -xvf \"%s\" -C \"%s\"", pathtoTar, outdir); /* @FIXME:Use a lib here! */ + system(tarcmd); + free(tarcmd); + free(pathtoTar); + free(outdir); + return 0; +}