add notification plugins

This commit is contained in:
Josh Harvey 2016-04-22 19:22:34 +03:00
parent 7e15308499
commit a8b75ca4d2
7 changed files with 123 additions and 126 deletions

55
bin/ssu
View file

@ -28,6 +28,10 @@ function bail (error) {
console.log('This will activate or deactivate a cryptocurrency.')
console.log('\nssu config <plugin> <key>')
console.log('Configure a plugin setting.')
console.log('\nssu notify [email] [sms]')
console.log('Set notification plugin types.')
console.log('\nssu set <plugin type> <plugin>')
console.log('Set current plugin for plugin type.')
process.exit(1)
}
@ -41,6 +45,12 @@ switch (cmd) {
case 'config':
configure()
break
case 'notify':
notify()
break
case 'set':
setPlugin()
break
default:
bail('No such command: ' + cmd)
break
@ -269,3 +279,48 @@ function configure () {
})
})
}
function notify () {
var plugins = argv.slice(1)
var db = connect()
return loadConfig(db)
.then(function (config) {
config.exchanges.plugins.current.notify = JSON.stringify(plugins)
return updateConfig(db, config)
})
.then(function () {
console.log('success')
pgp.end()
})
.catch(function (err) {
console.log(err.stack)
pgp.end()
})
}
function setPlugin () {
var pluginType = argv[1]
var plugin = argv[2]
var db = connect()
return loadConfig(db)
.then(function (config) {
if (!plugin) {
var _plugin = config.exchanges.plugins.current[pluginType]
_plugin
? console.log('Current plugin for %s: %s', pluginType, _plugin)
: console.log('No plugin set for %s', pluginType)
process.exit(0)
}
config.exchanges.plugins.current[pluginType] = plugin
return updateConfig(db, config)
})
.then(function () {
console.log('success')
pgp.end()
})
.catch(function (err) {
console.log(err.stack)
pgp.end()
})
}