4 var Emitter = require(
"events").EventEmitter;
5 var fs = require(
"fs");
6 var child_process = require(
"child_process");
7 var Utils =
new Emitter();
16 Utils.Uniquify =
function (name) {
17 if (name.search(/[\d]+/) >= 0) {
18 var lastNumber = name.replace(/.*?([\d]+)[^\d]*$/g,
"$1");
19 console.log(
"Last number in string: " + lastNumber);
20 var len = lastNumber.length;
22 for (var j = (
"" + lastNumber).length; j < len; j++) {
23 lastNumber =
"0" + lastNumber;
25 console.log(
"After replacement: " + lastNumber);
26 name = name.replace(/(.*?)([\d]+)([^\d]*)$/g,
"$1" + lastNumber +
"$3");
28 name = name +
"_" + Date.now();
39 Utils.ExecSync =
function (command) {
41 child_process.exec(command +
" 2>&1 1>output && echo done >done || echo fail >done");
45 while (!fs.existsSync(
"done")) {
46 if (fs.existsSync(
"output")) {
47 var outputDiff =
"" + fs.readFileSync(
"output");
48 fs.unlinkSync(
"output");
49 console.log(outputDiff);
54 if (fs.existsSync(
"output")) {
56 output += fs.readFileSync(
"output");
57 fs.unlinkSync(
"output");
61 fs.unlinkSync(
"done");
71 Utils.MoveFileSync =
function (oldPath, newPath) {
72 if (fs.existsSync(newPath)) {
73 fs.unlinkSync(newPath);
76 fs.renameSync(oldPath, newPath);
85 Utils.ValidatePath =
function (path) {
86 var re = /^[a-zA-Z0-9\-_]+$/;
87 if (!path.match(re)) {
100 Utils.ContainsString =
function (arr, val) {
101 for (var i = 0; i < arr.length; i++) {
102 if (arr[i] === val) {
116 Utils.ContainsName =
function (arr, val, name) {
117 for (var i = 0; i < arr.length; i++) {
119 if (arr[i][name] === val) {
126 module.exports = Utils;