2015-02-26 15:47:56 +00:00
( function ( ) {
var _ , commandOptions , plugins , visuals ;
_ = require ( 'lodash' ) ;
visuals = require ( 'resin-cli-visuals' ) ;
commandOptions = require ( './command-options' ) ;
plugins = require ( '../plugins' ) ;
exports . list = {
signature : 'plugins' ,
description : 'list all plugins' ,
help : 'Use this command to list all the installed resin plugins.\n\nExamples:\n $ resin plugins' ,
permission : 'user' ,
action : function ( params , options , done ) {
return plugins . list ( function ( error , resinPlugins ) {
if ( error != null ) {
return done ( error ) ;
}
if ( _ . isEmpty ( resinPlugins ) ) {
console . log ( 'You don\'t have any plugins yet' ) ;
return done ( ) ;
}
console . log ( visuals . widgets . table . horizontal ( resinPlugins , [ 'name' , 'version' , 'description' , 'license' ] ) ) ;
return done ( ) ;
} ) ;
}
} ;
exports . install = {
signature : 'plugin install <name>' ,
description : 'install a plugin' ,
2015-03-02 14:41:38 +00:00
help : 'Use this command to install a resin plugin\n\nUse `--quiet` to prevent information logging.\n\nExamples:\n $ resin plugin install hello' ,
2015-02-26 15:47:56 +00:00
permission : 'user' ,
action : function ( params , options , done ) {
return plugins . install ( params . name , function ( error ) {
if ( error != null ) {
return done ( error ) ;
}
console . info ( "Plugin installed: " + params . name ) ;
return done ( ) ;
} ) ;
}
} ;
2015-03-02 14:41:08 +00:00
exports . update = {
signature : 'plugin update <name>' ,
description : 'update a plugin' ,
help : 'Use this command to update a resin plugin\n\nUse `--quiet` to prevent information logging.\n\nExamples:\n $ resin plugin update hello' ,
permission : 'user' ,
action : function ( params , options , done ) {
return plugins . update ( params . name , function ( error , version ) {
if ( error != null ) {
return done ( error ) ;
}
console . info ( "Plugin updated: " + params . name + "@" + version ) ;
return done ( ) ;
} ) ;
}
} ;
2015-02-26 15:47:56 +00:00
exports . remove = {
signature : 'plugin rm <name>' ,
description : 'remove a plugin' ,
help : 'Use this command to remove a resin.io plugin.\n\nNotice this command asks for confirmation interactively.\nYou can avoid this by passing the `--yes` boolean option.\n\nExamples:\n $ resin plugin rm hello\n $ resin plugin rm hello --yes' ,
options : [ commandOptions . yes ] ,
permission : 'user' ,
action : function ( params , options , done ) {
return visuals . patterns . remove ( 'plugin' , options . yes , function ( callback ) {
return plugins . remove ( params . name , callback ) ;
} , function ( error ) {
if ( error != null ) {
return done ( error ) ;
}
console . info ( "Plugin removed: " + params . name ) ;
return done ( ) ;
} ) ;
}
} ;
} ) . call ( this ) ;