New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

autostart

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

autostart - npm Package Compare versions

Comparing version 0.0.7 to 0.0.8

files/sunos/service.xml

8

lib/autostart.js

@@ -63,4 +63,10 @@ var flatiron = require('flatiron'),

autostart.exec = function (command, callback) {
autostart.log.info('Executing command ' + command.join(' ').magenta);
if (command.length > 0) {
autostart.log.info('Executing command ' + command.join(' ').magenta);
}
//
// Default install action
//
if (command[0] === 'command' || command[0] === 'service') {

@@ -67,0 +73,0 @@ command[1] = 'install';

@@ -0,5 +1,70 @@

var autostart = require('../../autostart'),
errs = require('errs'),
os = require('os'),
platform = autostart.argv.platform || os.platform();
var service = exports;
service.usage = [
'this is service'
'Install a init.d or SMF service',
'',
' autostart service install',
'',
'Parameters:',
'--platform - default (' + os.platform().bold + ')',
'--start',
'--stop - default (:kill)'
];
service.install = function (callback) {
var addon;
var name = autostart.argv.name,
start = autostart.argv.start,
stop = autostart.argv.stop || ':kill';
if (typeof callback != 'function') {
return autostart.showError(errs.create({ name: 'Arguments', message: 'Bad arguments, please check your command' }));
}
try {
addon = require('../' + platform);
} catch (err) {
}
if (!addon) {
return callback(errs.create({ name: 'Platform', message: 'No platform found (' + platform.bold + ')', platform: platform }));
}
if (!name) {
return callback(errs.create({ name: 'Arguments', message: "--name required" }));
}
if (!start) {
return callback(errs.create({ name: 'Arguments', message: "--start required" }));
}
//
// Override root folder
//
if (autostart.argv.root) {
autostart.config.set('root', autostart.argv.root);
}
var service = {
name: name,
start: start,
stop: stop
};
addon.service(service, function (err) {
if (err) {
return callback(errs.merge(err));
}
autostart.log.info('Creating autostart service');
autostart.inspect.putObject({ service: service });
callback();
});
}

@@ -68,4 +68,31 @@ var autostart = require('../autostart');

sunos.service = function (name, start, stop, callback) {
callback(new Error('Not implemented'));
sunos.service = function (service, callback) {
var root = autostart.config.get('root');
var files = autostart.config.get('files');
async.series([
// Create /opt/custom/smf folder
function (next) {
mkdirp(path.join(root, 'opt', 'custom', 'smf'), function (err) {
return err ? next(err) : next();
});
},
// Create service.xml file
function (next) {
fs.readFile(path.join(files, 'sunos', 'service.xml'), 'utf8', function (err, script) {
if (err) {
return next(err);
}
var template = Handlebars.compile(script, { noEscape: true });
var result = template(service);
fs.writeFile(path.join(root, 'opt', 'custom', 'smf', service.name + '.xml'), result, { mode: 0644 }, function (err) {
return err ? next(err) : next();
});
});
}
], function (err) {
return err ? callback(errs.merge(err)) : callback();
});
};

2

package.json
{
"name": "autostart",
"version": "0.0.7",
"version": "0.0.8",
"description": "Multiplatform autostart tool for Node.js applications",

@@ -5,0 +5,0 @@ "main": "./lib/autostart.js",

@@ -26,3 +26,3 @@ # autostart [![Build Status](https://travis-ci.org/julianduque/node-autostart.png)](https://travis-ci.org/julianduque/node-autostart)

## Supported Platforms
* SunOS - Command: `ok` - Service: `pending`
* SunOS - Command: `ok` - Service: `ok`
* Linux - Command: `pending` - Service: `pending`

@@ -29,0 +29,0 @@ * Darwin - Command: `peding` - Service: `pending`

@@ -19,8 +19,17 @@ //

autostartScript = fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'sunos', 'autostart.sh'), 'utf8'),
serviceManifest = fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'sunos', 'myapp.xml'), 'utf8'),
root = autostart.config.get('root'),
command = "node app.js > output",
service = {
name: 'myapp',
start: "node app.js",
stop: "exit 0"
stop: ":kill"
};
root = autostart.config.get('root'),
command = "node app.js > output",
service = {
name: 'myapp',
start: "node app.js",
stop: ":kill"
};

@@ -62,3 +71,21 @@ describe('SunOS Addon', function () {

});
before(function (next) {
sunos.service(service, function (err) {
assert.ok(!err);
next();
});
});
after(function (next) {
if (root != '/') {
rimraf(path.join(root, 'opt'), next);
}
});
it('should install service manifest', function () {
var manifest = fs.readFileSync(path.join(root, 'opt', 'custom', 'smf', service.name + '.xml'), 'utf8');
assert.equal(serviceManifest, manifest);
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc