aboutsummaryrefslogtreecommitdiff
path: root/vm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'vm.sh')
-rwxr-xr-xvm.sh71
1 files changed, 43 insertions, 28 deletions
diff --git a/vm.sh b/vm.sh
index b011402..fb84fc9 100755
--- a/vm.sh
+++ b/vm.sh
@@ -141,9 +141,9 @@ vm_start() {
fi
return
fi
- for NAME in "${NAMES[@]}"
+ for MACHINE in "${NAMES[@]}"
do
- vm_boot $NAME "-display" "none" "-daemonize"
+ vm_boot $MACHINE "-display" "none" "-daemonize"
done
}
@@ -170,9 +170,13 @@ vm_cmd() {
"${SSH_OPTIONS[@]}" "$USER@$HOST" $2
}
+vm_ssh_add() {
+ ssh-add "$USER/$USER" &> /dev/null
+}
+
vm_ssh() {
vm_dir_check
- ssh-add "$USER/$USER" &> /dev/null
+ vm_ssh_add
vm_cmd $VM
}
@@ -186,18 +190,16 @@ vm_rsync_machine() {
fi
local SSH_OPTIONS=()
vm_ssh_options $MACHINE SSH_OPTIONS
- SSH_STRING="${SSH_OPTIONS[@]}"
local CMD=(
"rsync"
"-avz"
- "-e" "$SSH_STRING"
+ "-e" "${SSH_OPTIONS[*]}"
"--include-from=$DIR/$RSYNC_LIST"
"--exclude=*"
"$PWD/"
"$USER@$HOST:/home/$USER"
)
- echo "${CMD[*]}"
- ssh-add "$DIR/$USER/$USER" &> /dev/null
+ vm_ssh_add
"${CMD[@]}"
}
@@ -207,9 +209,9 @@ vm_sync() {
vm_rsync_machine $VM
return
fi
- for NAME in "${NAMES[@]}"
+ for MACHINE in "${NAMES[@]}"
do
- vm_rsync_machine $NAME
+ vm_rsync_machine $MACHINE
done
}
@@ -226,19 +228,19 @@ vm_test() {
return
fi
local -A TEST_STATUS=([$X64]=0 [$A64]=0)
- for NAME in "${NAMES[@]}"
+ for MACHINE in "${NAMES[@]}"
do
- vm_rsync_machine $NAME
- vm_test_cmd $NAME
- TEST_STATUS[$NAME]=$?
+ vm_rsync_machine $MACHINE
+ vm_test_cmd $MACHINE
+ TEST_STATUS[$MACHINE]=$?
done
- for NAME in "${NAMES[@]}"
+ for MACHINE in "${NAMES[@]}"
do
- if [[ ${TEST_STATUS[$NAME]} != 0 ]]
+ if [[ "${TEST_STATUS[$MACHINE]}" != 0 ]]
then
- echo "----------------------------"
- echo " MACHINE $NAME FAILED TESTS"
- echo "----------------------------"
+ echo "-----------------------"
+ echo " VM $MACHINE FAILED TESTS"
+ echo "-----------------------"
fi
done
}
@@ -248,45 +250,55 @@ vm_stop() {
vm_dir_check
if [[ "$ACTION" != "KILL" ]]
then
- ssh-add "$USER/$USER" &> /dev/null
+ vm_ssh_add
fi
- for NAME in "${NAMES[@]}"
+ for MACHINE in "${NAMES[@]}"
do
- local PID_FILE="${PID_FILES[$NAME]}"
+ local PID_FILE="${PID_FILES[$MACHINE]}"
if [[ -f "$PID_FILE" ]]
then
if [[ "$ACTION" == "KILL" ]]
then
kill $(cat $PID_FILE)
- echo "VM $NAME force stop"
+ echo "VM $MACHINE force stop"
else
- vm_cmd $NAME "sudo poweroff"
- echo "VM $NAME powering off"
+ vm_cmd $MACHINE "sudo poweroff"
+ echo "VM $MACHINE powering off"
fi
fi
done
}
vm_clean() {
+ vm_ssh_add
+ for MACHINE in "${NAMES[@]}"
+ do
+ vm_cmd $MACHINE "make clean; find -type f -regex '^.*\.[ch]' -exec rm -v {} \;"
+ done
+}
+
+vm_destroy() {
if [[ ! -d "$DIR" ]]
then
return
fi
local CHOICE
- read -n 1 -r -s -p "Are you sure? y/n " CHOICE
+ read -n 1 -r -p "Are you sure? [y/n] " CHOICE
if [[ "$CHOICE" != "y" ]]
then
echo
return
fi
+ echo
vm_stop "KILL"
- rm -r $DIR
- echo -e "\nRemoved $DIR directory"
+ cd ..
+ rm -rf $DIR
+ echo -e "Removed $DIR directory"
}
vm_help() {
echo "See TESTING"
- echo "Usage $SCRIPT -init|-setup|-cli|-start|-ssh|-sync|-test|-stop|-kill|-clean|-help"
+ echo "Usage $SCRIPT -init|-setup|-cli|-start|-ssh|-sync|-test|-stop|-kill|-clean|-destroy|-help"
}
case $OPTION in
@@ -320,6 +332,9 @@ case $OPTION in
-clean)
vm_clean
;;
+ -destroy)
+ vm_destroy
+ ;;
*)
vm_help
;;