vibox
Version:
Node.js cli helper for VirtualBox management
75 lines (59 loc) • 2.1 kB
text/coffeescript
###
* vibox
* https://github.com/leny/vibox
*
* Copyright (c) 2013 Leny
* Licensed under the MIT license.
###
"use strict"
path = require 'path'
program = require 'commander'
vibox_pkg = require '../package.json'
word = ( val ) ->
return val
program
.version( vibox_pkg.version )
.option( '--initpath', '[internal] init path completion' )
program
.command( 'list' )
.description( 'list VMs' )
.option( '-s, --state', 'Display state' )
.option( '-r, --running', 'Show running VMs only' )
.action( require( './modules/list' ).exec )
program
.command( 'show <uid|name>' )
.description( 'show information about specific VM' )
.option( '-f, --full', 'Display full informations' )
.action( require( './modules/show' ).exec )
program
.command( 'start <uid|name>' )
.description( 'start VM' )
.option( '-h, --headless', 'Start VM headless (no GUI)' )
.action( require( './modules/control' ).start )
program
.command( 'headless <uid|name>' )
.description( 'start VM headless (no GUI)' )
.action( require( './modules/control' ).headless )
program
.command( 'stop <uid|name>' )
.description( 'stop VM using ACPI module (if enabled)' )
.action( require( './modules/control' ).stop )
program
.command( 'control <uid|name> <action>' )
.description( 'control VM (start|headless|pause|resume|stop|reset|poweroff)' )
.action( require( './modules/control' ).control )
program
.command( 'commands' )
.description( '[internal] list all commands (used for completion)' )
.action( require( './modules/completion' ).commands )
program
.command( 'completions <cmd>' )
.description( '[internal] list escaped VMs names (used for completion)' )
.action( require( './modules/completion' ).vms )
program
.command( 'control_compl' )
.description( '[internal] list command for control (used for completion)' )
.action( require( './modules/completion' ).control )
program.parse( process.argv )
if program.initpath
console.log path.resolve __dirname + '/../shell/init'