lots of work on the request pipeline
[nodejs-repoproxy.git] / lib / config.js
index 8d5de4b..441caed 100644 (file)
@@ -6,6 +6,7 @@ exports.loadConfig = function (conffile) {
        global.repoproxy.listenPort = 8008;
        global.repoproxy.cacheDir = "./cache";
        global.repoproxy.repo = new Object();
+       global.repoproxy.scancache = 1; 
        
        var confFileData = fs.readFileSync(conffile, "utf8");
        
@@ -32,17 +33,25 @@ exports.loadConfig = function (conffile) {
                        
                        break;
                case "cachedir":
-                       console.log("Cache dir set to: ", line_real[1]);
-                       global.repoproxy.cacheDir = line_real[1];
-                       
+                       var tmppath = line_real[1].replace(/\/+/g, "/");
+                       console.log("Cache dir set to: ", tmppath);
+                       global.repoproxy.cacheDir = tmppath;
                        break;
                case "listenport":
                        console.log("Port set to: ", line_real[1]);
                        global.repoproxy.listenPort = line_real[1];
                        break;
+               case "cachescan":
+                       console.log("Set cache scan rate to: '%s' hours", line_real[1]);
+                       global.repoproxy.scancache = parseInt(line_real[1]);
+                       if(global.repoproxy.scancache == 0) {
+                               console.log("Cache scan rate didnt make sense, it was 0, and should be at least 1 - it is set to 24, but you should check this setting");
+                               global.repoproxy.scancache = 24;
+                       }
+                       break;
                default:
                        if(line_real[0] != "") {
-                               console.log("Invalid line in configuration file ignored: '%s'", line_one);
+                               console.log("WARNING Invalid line in configuration file ignored: '%s'", line_one);
                        }
                }
        }
@@ -58,11 +67,18 @@ function createCacheStructure() {
        } catch(e) {
                try {
                        fs.mkdirSync(global.repoproxy.cacheDir);
+                       fs.mkdirSync(global.repoproxy.cacheDir + "/.cleanup");
                } catch(ex) {
                        console.log("ERROR: failure to create cache directory, '%s'", global.repoproxy.cacheDir);
                }
        }
        
+       try {
+               fs.mkdirSync(global.repoproxy.cacheDir + "/.cleanup");
+       } catch(ex) {
+               console.log("ERROR: cant create cleanup directory, '%s'", global.repoproxy.cacheDir + "/.cleanup");
+       }
+       
        for(var index in global.repoproxy.repo) {
                var fullDir = global.repoproxy.cacheDir + "/" + index;
                try {