diff options
Diffstat (limited to 'bin/vm')
| -rwxr-xr-x | bin/vm | 65 |
1 files changed, 65 insertions, 0 deletions
@@ -0,0 +1,65 @@ +#!/bin/sh + +# vm is a tool to manage virtual machines. + +vm_version='vm-0.1' +unset CDPATH +export LC_ALL=C IFS=' +' + +add() { + usage 'add name' 'Add a new VM' && return + echo 'not implemented yet' +} + +del() { + usage 'del name' 'Delete a VM' && return + echo 'not implemented yet' +} + +die() { echo "$0: fatal: $@" >&2; exit 1; } + +help() { + usage 'help' 'Print this help text' && return + printf "$vm_version\nUsage: vm command [options] [args]\n" + Opth=1; for c in $Cmdlist; do $c; done +} + +info() { + usage 'info name' 'Print informations on a VM' && return + echo 'not implemented yet' +} + +list() { + usage 'list' 'list VMs' && return + echo 'not implemented yet' +} + +start() { + usage 'start name' 'Start a VM' && return + echo 'not implemented yet' +} + +stop() { + usage 'stop name' 'Stop a VM' && return + echo 'not implemented yet' +} + +usage() { [ "$Opth" ] && printf " %-34s %s\n" "$1" "$2"; } + +version() { + usage 'version' 'Print version' && return + echo "$vm_version" +} + +# Main starts here. +Cmdlist='add del info help list start stop version' +[ "$1" ] && C=$1 && shift 1 || { help; exit 1; } +for c in $Cmdlist +do + case $c in + ($C) cmd=$c; break;; + ($C*) [ "$cmd" ] && die "ambiguous command $C" || cmd=$c;; + esac +done +[ "$cmd" ] || die "no command \"$C\"" && $cmd "$@" |
