PAKFIRE_JOB_CCACHE = (1 << 1),
} flags;
+ // Result Directory
+ char resultdir[PATH_MAX];
+
// Package URL
char pkg[PATH_MAX];
if (job->uploads.logfile)
free(job->uploads.logfile);
+ // Cleanup the result directory
+ pakfire_rmtree(job->resultdir, 0);
+
if (job->client)
pakfire_client_unref(job->client);
if (job->config)
int pakfire_job_create(struct pakfire_job** job, struct pakfire_ctx* ctx,
struct pakfire_client* client, struct pakfire_builder* builder, json_object* data) {
struct pakfire_job* j = NULL;
+ char* p = NULL;
int r;
// Allocate a new object
goto ERROR;
}
+ // Create a template for the result path
+ r = pakfire_string_set(j->resultdir, PAKFIRE_TMP_DIR "/pakfire-result.XXXXXX");
+ if (r < 0)
+ goto ERROR;
+
+ // Create a place for the result
+ p = pakfire_mkdtemp(j->resultdir);
+ if (!p) {
+ ERROR(j->ctx, "Failed to create a temporary directory: %m\n");
+ r = -errno;
+ goto ERROR;
+ }
+
// Parse the job
r = pakfire_parse_job(j, data);
if (r)