diff options
Diffstat (limited to 'vm.sh')
| -rwxr-xr-x | vm.sh | 31 |
1 files changed, 22 insertions, 9 deletions
@@ -65,7 +65,7 @@ vm_setup() { local PUB=$(cat "$DIR/$USER/$USER.pub") local HEADER="COPY AND RUN IN QEMU:" echo $HEADER - echo " sed -i 's/^%sudo\s\+ALL=(ALL:ALL)\sALL$/%sudo ALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers; adduser --disabled-password --gecos "" --shell /bin/bash $USER; adduser $USER sudo; su - $USER" + echo " sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT_STYLE=hidden\nGRUB_TIMEOUT=0/' /etc/default/grub; update-grub; sed -i 's/^%sudo\s\+ALL=(ALL:ALL)\sALL$/%sudo ALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers; adduser --disabled-password --gecos "" --shell /bin/bash $USER; adduser $USER sudo; su - $USER" echo $HEADER echo " mkdir .ssh; cd .ssh; echo \"$PUB\" > authorized_keys; chmod 600 authorized_keys; cd ~" echo $HEADER @@ -73,7 +73,7 @@ vm_setup() { } vm_check() { - if [[ "$VM" != "$X64" && "$VM" != "$A64" ]] + if [[ "$1" != "$X64" && "$1" != "$A64" ]] then echo "Usage $SCRIPT $OPTION $X64|$A64" return 1 @@ -108,7 +108,7 @@ vm_boot() { } vm_cli() { - vm_check + vm_check $VM if [[ $? != 0 ]] then return @@ -125,25 +125,35 @@ vm_start() { done } -vm_ssh() { - vm_check +vm_cmd() { + vm_check $1 if [[ $? != 0 ]] then return fi - cd $DIR ssh-add "$USER/$USER" - ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$USER@localhost" -p "${SSH_PORTS[$VM]}" + ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$USER@localhost" -p "${SSH_PORTS[$1]}" $2 +} + +vm_ssh() { + cd $DIR + vm_cmd $VM } vm_stop() { + local ACTION=$1 cd $DIR for NAME in "${NAMES[@]}" do local PID_FILE="${PID_FILES[$NAME]}" if [[ -f "$PID_FILE" ]] then - kill $(cat $PID_FILE) + if [[ "$ACTION" == "KILL" ]] + then + kill $(cat $PID_FILE) + else + vm_cmd $NAME "sudo poweroff" + fi fi done } @@ -165,7 +175,7 @@ vm_clean() { } vm_help() { - echo "Usage $SCRIPT -init|-cli|-start|-ssh|-test|-stop|-clean|-help" + echo "Usage $SCRIPT -init|-cli|-start|-ssh|-test|-stop|-kill|-clean|-help" } case $OPTION in @@ -189,6 +199,9 @@ case $OPTION in -stop) vm_stop ;; + -kill) + vm_stop "KILL" + ;; -clean) vm_clean ;; |
