Skip to content

Instantly share code, notes, and snippets.

@gabrielstuff
Last active April 20, 2016 21:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabrielstuff/643c3817a94afde7fb89c7a48683e20c to your computer and use it in GitHub Desktop.
Save gabrielstuff/643c3817a94afde7fb89c7a48683e20c to your computer and use it in GitHub Desktop.
require('shelljs/global')
var fs = require('fs')
var handlebars = require('handlebars')
var targz = require('tar.gz')
var file = './pm2-auto.json'
cd('test-settings')
rm('-rf', '.build');
var meteorSettingsFile = fs.readFileSync('./test.json', "utf8")
var pm2startTemplate = handlebars.compile(fs.readFileSync('./pm2-start.tpj', "utf8"))
var result = pm2startTemplate({
'node_env': 'production',
'root_url': 'http://test.com',
'meteor_settings': meteorSettingsFile
});
result = JSON.parse(result)
console.log(result)
fs.writeFile(file, JSON.stringify(result, null, 2), 'utf-8', function (err) {
console.error(err)
})
console.log('Building meteor app...')
if (exec('meteor build .build').code !== 0) {
echo('Error: Meteor build command failed');
exit(1);
} else {
console.log('Extracting meteor app...')
if (exec('tar -zxvf ./.build/test-settings.tar.gz -C ./.build').code !== 0) {
echo('Error: Extract command failed');
exit(1);
} else {
cd('./.build/bundle/programs/server')
console.log('Installing dependencies..');
if (exec('npm install').code !== 0) {
echo('Error: npm install failed');
exit(1);
} else {
mv('-f','../../../../pm2-auto.json', '../../pm2-auto.json')
console.log('my job here is done.')
}
}
}
{
"apps" : [{
"name" : "test-app",
"script" : "main.js",
"node_args" : "--harmony",
"merge_logs" : true,
"env": {
"NODE_ENV": "{{node_env}}",
"ROOT_URL": "{{root_url}}",
"METEOR_SETTINGS": {{{meteor_settings}}}
}
}]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment