00001
00002
00003
00004 var Emitter = require("events").EventEmitter;
00005 var fs = require("fs");
00006 var child_process = require("child_process");
00007 var Utils = new Emitter();
00008
00009
00010
00016 Utils.Uniquify = function (name) {
00017 if (name.search(/[\d]+/) >= 0) {
00018 var lastNumber = name.replace(/.*?([\d]+)[^\d]*$/g, "$1");
00019 console.log("Last number in string: " + lastNumber);
00020 var len = lastNumber.length;
00021 lastNumber++;
00022 for (var j = ("" + lastNumber).length; j < len; j++) {
00023 lastNumber = "0" + lastNumber;
00024 }
00025 console.log("After replacement: " + lastNumber);
00026 name = name.replace(/(.*?)([\d]+)([^\d]*)$/g, "$1" + lastNumber + "$3");
00027 } else {
00028 name = name + "_" + Date.now();
00029 }
00030 return name;
00031 };
00032
00033
00039 Utils.ExecSync = function (command) {
00040
00041 child_process.exec(command + " 2>&1 1>output && echo done >done || echo fail >done");
00042
00043
00044 var output = "";
00045 while (!fs.existsSync("done")) {
00046 if (fs.existsSync("output")) {
00047 var outputDiff = "" + fs.readFileSync("output");
00048 fs.unlinkSync("output");
00049 console.log(outputDiff);
00050 output += outputDiff;
00051 }
00052 }
00053
00054 if (fs.existsSync("output")) {
00055
00056 output += fs.readFileSync("output");
00057 fs.unlinkSync("output");
00058 }
00059
00060
00061 fs.unlinkSync("done");
00062
00063 return output;
00064 }
00065
00071 Utils.MoveFileSync = function (oldPath, newPath) {
00072 if (fs.existsSync(newPath)) {
00073 fs.unlinkSync(newPath);
00074 }
00075
00076 fs.renameSync(oldPath, newPath);
00077 }
00078
00079
00085 Utils.ValidatePath = function (path) {
00086 var re = /^[a-zA-Z0-9\-_]+$/;
00087 if (!path.match(re)) {
00088 return false;
00089 }
00090
00091 return true;
00092 }
00093
00100 Utils.ContainsString = function (arr, val) {
00101 for (var i = 0; i < arr.length; i++) {
00102 if (arr[i] === val) {
00103 return i;
00104 }
00105 }
00106 return -1;
00107 }
00108
00116 Utils.ContainsName = function (arr, val, name) {
00117 for (var i = 0; i < arr.length; i++) {
00118
00119 if (arr[i][name] === val) {
00120 return i;
00121 }
00122 }
00123 return -1;
00124 }
00125
00126 module.exports = Utils;