1 var fs = require("fs");
3 exports.loadConfig = function (conffile) {
5 global.repoproxy = new Object();
6 global.repoproxy.listenPort = 8008;
7 global.repoproxy.cacheDir = "./cache";
8 global.repoproxy.repo = new Object();
9 global.repoproxy.scancache = 1;
11 var confFileData = fs.readFileSync(conffile, "utf8");
13 // first split the file on carriage returns;
14 var confLines = confFileData.split("\n");
16 // go thru each line looking for config vars
17 for(var i=0; i<confLines.length; i++) {
20 var line_one = confLines[i].trim();
22 // split it up with :'s
23 var line_real = line_one.replace(/#.*/,"").split(":");
26 switch(line_real[0]) {
30 console.log("Adding repo: '/%s' type '%s' from '%s', with update interval of '%s' days, and expire time of '%s' days.", line_real[1], line_real[2], line_real[3]+":"+line_real[4], line_real[5], line_real[6]);
31 var thisrepo = { type : line_real[2], url: line_real[3]+":"+line_real[4], updateinterval: line_real[5], expiretime: line_real[6] };
32 global.repoproxy.repo[line_real[1]] = thisrepo;
36 var tmppath = line_real[1].replace(/\/+/g, "/");
37 console.log("Cache dir set to: ", tmppath);
38 global.repoproxy.cacheDir = tmppath;
41 console.log("Port set to: ", line_real[1]);
42 global.repoproxy.listenPort = line_real[1];
45 console.log("Set cache scan rate to: '%s' hours", line_real[1]);
46 global.repoproxy.scancache = parseInt(line_real[1]);
47 if(global.repoproxy.scancache == 0) {
48 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");
49 global.repoproxy.scancache = 24;
53 if(line_real[0] != "") {
54 console.log("WARNING Invalid line in configuration file ignored: '%s'", line_one);
59 createCacheStructure();
63 function createCacheStructure() {
65 var state = fs.statSync(global.repoproxy.cacheDir);
66 //console.log("state is:", state);
69 fs.mkdirSync(global.repoproxy.cacheDir);
70 fs.mkdirSync(global.repoproxy.cacheDir + "/.cleanup");
72 console.log("ERROR: failure to create cache directory, '%s'", global.repoproxy.cacheDir);
77 fs.mkdirSync(global.repoproxy.cacheDir + "/.cleanup");
79 console.log("ERROR: cant create cleanup directory, '%s'", global.repoproxy.cacheDir + "/.cleanup");
82 for(var index in global.repoproxy.repo) {
83 var fullDir = global.repoproxy.cacheDir + "/" + index;
85 var state = fs.statSync(global.repoproxy.cacheDir);
86 //console.log("state is:", state);
89 fs.mkdirSync(fullDir);
91 console.log("ERROR: failed to create cache directory, '%s' for '%s'", fullDir, index);