diff options
author | sinanmohd <sinan@sinanmohd.com> | 2024-06-23 18:49:29 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2024-06-24 11:15:39 +0530 |
commit | bb33df56cbbb02650328dd201e2d9686363d15f5 (patch) | |
tree | 048b2066bff4b7b4e5c2d85212de087c2b1a73a5 /src/jobs.c | |
parent | a3c16056c2ea8083db39054271f1118aed37ccc3 (diff) |
evanix: init arg parsing
Diffstat (limited to 'src/jobs.c')
-rw-r--r-- | src/jobs.c | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -5,6 +5,7 @@ #include <cjson/cJSON.h> +#include "evanix.h" #include "jobs.h" #include "util.h" @@ -219,7 +220,8 @@ int job_read(FILE *stream, struct job **job) temp = cJSON_GetObjectItemCaseSensitive(root, "error"); if (cJSON_IsString(temp)) { - puts(temp->valuestring); + if (evanix_opts.close_stderr_exec) + puts(temp->valuestring); ret = JOB_READ_EVAL_ERR; goto out_free; } @@ -361,17 +363,18 @@ out_free_job: return ret; } -int jobs_init(FILE **stream) +int jobs_init(FILE **stream, char *expr) { + size_t argindex; + char *args[4]; int ret; - /* TODO: proproperly handle args */ - char *const args[] = { - "nix-eval-jobs", - "--flake", - "github:sinanmohd/evanix#packages.x86_64-linux", - NULL, - }; + argindex = 0; + args[argindex++] = "nix-eval-jobs"; + if (evanix_opts.isflake) + args[argindex++] = "--flake"; + args[argindex++] = expr; + args[argindex++] = NULL; /* the package is wrapProgram-ed with nix-eval-jobs */ ret = vpopen(stream, "nix-eval-jobs", args); |