summaryrefslogtreecommitdiff
path: root/src/build.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/build.c')
-rw-r--r--src/build.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/build.c b/src/build.c
index fa76c13..39750b5 100644
--- a/src/build.c
+++ b/src/build.c
@@ -5,6 +5,7 @@
#include <string.h>
#include "build.h"
+#include "evanix.h"
#include "jobs.h"
#include "queue.h"
#include "util.h"
@@ -42,13 +43,27 @@ out:
static int build(struct queue *queue)
{
struct job *job;
- int ret = 0;
+ char *args[3];
+ size_t argindex;
+ int ret;
ret = queue_pop(queue, &job, queue->htab);
if (ret < 0)
return ret;
- printf("nix build %s^*\n", job->drv_path);
+ argindex = 0;
+ args[argindex++] = "nix-build";
+ args[argindex++] = job->drv_path;
+ args[argindex++] = NULL;
+
+ if (evanix_opts.isdryrun) {
+ for (size_t i = 0; i < argindex - 1; i++)
+ printf("%s%c", args[i],
+ (i + 2 == argindex) ? '\n' : ' ');
+ } else {
+ run("nix-build", args);
+ }
+
job_free(job);
return 0;