Refactor setting of directories
authorJosé Bollo <jose.bollo@iot.bzh>
Mon, 10 Apr 2017 13:15:21 +0000 (15:15 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Mon, 10 Apr 2017 13:15:21 +0000 (15:15 +0200)
When not specified, the default directories are
now ".". The workdir is relative to the current directory
and other directories are relative the the workdir.

Change-Id: I52c013e3a3c93b3f984903562cf0c56d990900e6
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-config.c
src/main.c

index 347198d..1b4a369 100644 (file)
@@ -559,13 +559,13 @@ static void config_set_default(struct afb_config *config)
 
        /* set directories */
        if (config->workdir == NULL)
-               config->workdir = get_current_dir_name();
+               config->workdir = ".";
 
        if (config->rootdir == NULL)
-               config->rootdir = config->workdir;
+               config->rootdir = ".";
 
        if (config->uploaddir == NULL)
-               config->uploaddir = config->workdir;
+               config->uploaddir = ".";
 
        // if no Angular/HTML5 rootbase let's try '/' as default
        if (config->rootbase == NULL)
index 6db1e2a..0bfa529 100644 (file)
@@ -444,11 +444,16 @@ static void start()
                goto error;
        }
 
+       /* set the directories */
        mkdir(config->workdir, S_IRWXU | S_IRGRP | S_IXGRP);
        if (chdir(config->workdir) < 0) {
                ERROR("Can't enter working dir %s", config->workdir);
                goto error;
        }
+       if (afb_common_rootdir_set(config->rootdir) < 0) {
+               ERROR("failed to set common root directory");
+               goto error;
+       }
 
        /* install hooks */
        if (config->tracereq)
@@ -472,12 +477,6 @@ static void start()
                goto error;
        }
 
-       // set the root dir
-       if (afb_common_rootdir_set(config->rootdir) < 0) {
-               ERROR("failed to set common root directory");
-               goto error;
-       }
-
        DEBUG("Init config done");
 
        /* start the services */