-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathinstaller.js
More file actions
59 lines (54 loc) · 1.72 KB
/
installer.js
File metadata and controls
59 lines (54 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var path = require('path'), fs = require('fs'), util = require('util'), spawn = require('child_process').spawn;
var install = function (callback) {
var done = false;
process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
callback(err);
});
var handleError = function (error) {
if (error) {
callback(error);
}
};
var etc = process.env.npm_package_config_etc || '/etc/nodast/';
var initd = process.env.npm_package_config_initd || '/etc/init.d/';
fs.exists(etc, function (exists) {
if (!exists) {
fs.mkdirSync(etc, 755);
}
var bindir = path.dirname(fs.realpathSync(process.argv[1]));
var configIn = './etc/nodast.js';
console.log(process.argv);
if (process.argv) {
//configIn = bindir + "/../" +configIn;
configIn = path.join(bindir, "..", configIn);
}
var inStream = fs.createReadStream(configIn);
var outStream = fs.createWriteStream(etc + 'nodast.js', {
flags : 'w',
encoding : null,
mode : 644
});
util.pump(inStream, outStream, function (error) {
handleError(error);
var initdIn = './scripts/nodast.initd';
if (process.argv) {
initdIn = path.join(bindir, "..", initdIn);
}
var initdInStream = fs.createReadStream(initdIn);
var initdOutStream = fs.createWriteStream(initd + 'nodast', {
flags : 'w',
encoding : null,
mode : 744
});
util.pump(initdInStream, initdOutStream, function (error) {
handleError(error);
var chkconfig = spawn('chkconfig', [ '--add', 'nodast' ]);
chkconfig.on('exit', function (code) {
callback();
});
});
});
});
};
exports.install = install;