diff options
| -rw-r--r-- | src/redo.c | 22 | ||||
| -rw-r--r-- | src/util.h | 1 | 
2 files changed, 23 insertions, 0 deletions
@@ -1,9 +1,31 @@  #include <stdio.h> +#include <stdlib.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h>  #include "build.h"  #include "util.h" +#include "dbg.h" + +/* TODO: for some reason this header is not included */ +int setenv(const char *name, const char *value, int overwrite);  int main(int argc, char *argv[]) { +    /* create .redo directory */ +    if (mkdir(".redo", 0744)) +        fatal(ERRM_MKDIR, ".redo"); + +    /* set REDO_ROOT */ +    char *cwd = getcwd(NULL, 0); +    if (!cwd) +        fatal("redo: failed to obtain cwd"); + +    if (setenv("REDO_ROOT", cwd, 0)) +        fatal("redo: failed to setenv %s to %s", "REDO_ROOT", cwd); + +    free(cwd); +      if (argc < 2) {          build_target("all");      } else { @@ -21,6 +21,7 @@  #define ERRM_FORK _PROGNAME": failed to fork() new process"  #define ERRM_REALPATH _PROGNAME": failed to get realpath() of %s"  #define ERRM_STAT _PROGNAME": failed to aquire stat() information about %s" +#define ERRM_MKDIR _PROGNAME": failed to mkdir() %s"  #define safe_malloc(size) safe_malloc_(size, _FILENAME, __LINE__)  #define safe_realloc(ptr, size) safe_realloc_(ptr, size, _FILENAME, __LINE__)  | 
