diff options
Diffstat (limited to 'src')
-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__) |