added a logger, started working on the maintenance timer routines
[nodejs-repoproxy.git] / lib / repo-yum.js
index 07a1893..25db170 100644 (file)
@@ -2,61 +2,66 @@ var fs = require("fs");
 var http = require("http");
 var url = require("url");
 var path = require("path");
+var cache = require("./cache.js");
+var log = require("./log.js");
 
 
 
 function maintain(name, repoinfo, files) {
-       console.log("doing yum clean for ", repoinfo);
+       log.info("Starting maintenance routine for yum repo %s (%s)", name, repoinfo.url);
        
        var metaAge = 24*3600*1000*(repoinfo.updateinterval);
        var expireAge = 24*3600*1000*(repoinfo.expiretime);
        
        function fileCheck(i) {
-               console.log("checking file: ", files[i]);
+               log.debug("checking file: ", files[i]);
                
                // we look for repodata/repomd.xml file, if this is past maturity, we clean that whole directory
                if(files[i].match(/.*repodata\/repomd\.xml$/)) {
-                       console.log("Found repomd.xml file: ", files[i]);
+                       log.debug("Found repomd.xml file: ", files[i]);
                        
                        // strip the repomd file to get the dir
                        var repomddir = files[i].replace(/repomd\.xml$/, "");
-                       console.log("repomd dir is:", repomddir);
+                       log.debug("repomd dir is:", repomddir);
 
                        
                        // do the file stat
                        fs.stat(files[i], function(err, stats) {
-                               console.log("stats for file was: ", stats);
+                               log.debug("stats for file was: ", stats);
                                var curtime = new Date().getTime();
                                var ctime = stats.ctime.getTime();
-                               console.log("curtime is ", curtime);
-                               console.log("ctime is ", ctime);
+                               log.debug("curtime is ", curtime);
+                               log.debug("ctime is ", ctime);
                                
                                var age = curtime - ctime;
-                               console.log("age is (%d) for (%d)", age, metaAge);
+                               log.debug("age is (%d) for (%d)", age, metaAge);
                                if(age > metaAge) {
                                        // TODO: cleanup repomd directory
+                                       cache.moveToCleanup(repomddir);
+                                       log.info("Sending repomd directory to trash for cleanup (%s)", repomddir);
                                }
                        })
                        
                } else {
                        // STUFF!!!
                        fs.stat(files[i], function(err, stats) {
-                               console.log("stats for file was: ", stats);
+                               log.debug("stats for file was: ", stats);
                                var curtime = new Date().getTime();
                                var atime = stats.atime.getTime();
-                               console.log("curtime is ", curtime);
-                               console.log("ctime is ", atime);
+                               log.debug("curtime is ", curtime);
+                               log.debug("ctime is ", atime);
                                
                                var age = curtime - atime;
-                               console.log("age is (%d) for (%d)", age, expireAge);
+                               //console.log("age is (%d) for (%d)", age, expireAge);
                                if(age > expireAge) {
                                        // TODO: cleanup singular file
                                        // TODO: cleanup meta too, fuck me
-                                       console.log("clean up file \n", files[i]);
+                                       //console.log("clean up file \n", files[i]);
                                        var metafile = files[i].replace(/(.*)\/(.[^\/]+$)/, "$1/.meta.$2.filesize");
                                        //console.log("meta for this file is \n", nfile);
-                                       fs.unlink(files[i]);
-                                       fs.unlink(metafile);
+                                       cache.moveToCleanup(files[i]);
+                                       cache.moveToCleanup(metafile);
+                                       log.info("Sending expired file to trash for cleanup (%s)", files[i]);
                                }
                        })
                }
@@ -65,7 +70,7 @@ function maintain(name, repoinfo, files) {
        }
        
        if(typeof files[0] != 'undefined') fileCheck(0)
-       else console.log("Skipping (yum) file check as there are none... apprently?");
+       else log.info("Skipping (yum) file check as there are none... apprently?");
 
 
 }