skyflow-cli
Version:
Environment manager for your projects.
50 lines (46 loc) • 1.41 kB
JavaScript
/**
* Remove stopped containers.
*
* @class RmcCommand
* @module Command
* @author Skyflow
* @command rmc
* @options
* [-a, --all] Remove all containers.
* @see https://docs.docker.com/engine/reference/commandline/rm
* @examples
* skyflow rmc -a -f
* skyflow rmc postgres_564358 -f
* @related rmi rm
* @since 1.0.0
*/
module.exports = class RmcCommand {
constructor(container) {
const {Shell, Request, Output} = container;
let stringOpt = '';
if(Request.hasOption('a') || Request.hasOption('all')){
Shell.run('docker', ['ps', '-a', '-q']);
let containers = Shell.getArrayResult();
if (!containers[0]) {
Output.info('No containers found');
return this;
}
Request.removeOption('a');
Request.removeOption('all');
stringOpt = Request.getStringOptions() + ' $(docker ps -a -q)';
}else {
if(!Request.args[0]){
Output.info('No containers found');
return this;
}
stringOpt = Request.getStringOptions() + ' ' + (Request.args.join(' '));
}
try {
Shell.exec('docker rm ' + stringOpt);
Output.success('Success');
} catch (e) {
Output.skyflowError(e.message);
process.exit(1);
}
}
};