summaryrefslogtreecommitdiff
path: root/src/jobs.c
diff options
context:
space:
mode:
authorsinanmohd <sinan@sinanmohd.com>2024-06-23 18:49:29 +0530
committersinanmohd <sinan@sinanmohd.com>2024-06-24 11:15:39 +0530
commitbb33df56cbbb02650328dd201e2d9686363d15f5 (patch)
tree048b2066bff4b7b4e5c2d85212de087c2b1a73a5 /src/jobs.c
parenta3c16056c2ea8083db39054271f1118aed37ccc3 (diff)
evanix: init arg parsing
Diffstat (limited to 'src/jobs.c')
-rw-r--r--src/jobs.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/jobs.c b/src/jobs.c
index 6f06ef9..22d2b1c 100644
--- a/src/jobs.c
+++ b/src/jobs.c
@@ -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);