From fcb4817b69bb682f0cbe19f021540a0a4b3f4771 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Tue, 25 Mar 2025 15:20:18 -0400 Subject: [PATCH] add support for docker-based 'mocha suv new' --- mocha-suv/common/libexec/mocha-suv | 60 ++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/mocha-suv/common/libexec/mocha-suv b/mocha-suv/common/libexec/mocha-suv index 2f40902..54f3902 100755 --- a/mocha-suv/common/libexec/mocha-suv +++ b/mocha-suv/common/libexec/mocha-suv @@ -5,6 +5,7 @@ # mocha suv down # mocha suv new + USE_VAGRANT="false" VAGRANT_MOCHADIR=~/Documents/Vagrant/mocha VAGRANT_MACHINESDIR=$VAGRANT_MOCHADIR/machines @@ -288,20 +289,55 @@ elif [ "$1" == "delete" ]; then elif [ "$1" == "new" ]; then - cd $VAGRANT_MOCHADIR + shift; - BGS="" - if [ "$USE_VAGRANT" == "true" ]; then - BGS="$BGS --use-vagrant" - fi - if [ "$2" == "--transient" ]; then - BGS="$BGS --transient" - fi - if [ "$2" == "--unattended" ]; then - BGS="$BGS --unattended" - fi + BACKEND="vagrant" + + while true; do + case "$1" in + -b | --backend ) BACKEND="$2"; shift 2 ;; + -- ) shift; break ;; + * ) break ;; + esac + done - ./provision $BGS + if [ "$BACKEND" == "vagrant" ]; then + + command -v vagrant 2>&1 >/dev/null + Q=$? + + if [ $Q -eq 1 ]; then + + echo "error: backend 'vagrant' not found" + + else + + cd $VAGRANT_MOCHADIR + + BGS="" + if [ "$USE_VAGRANT" == "true" ]; then + BGS="$BGS --use-vagrant" + fi + if [ "$2" == "--transient" ]; then + BGS="$BGS --transient" + fi + if [ "$2" == "--unattended" ]; then + BGS="$BGS --unattended" + fi + + ./provision $BGS + + fi + + elif [ "$BACKEND" == "docker" ]; then + + /usr/lib/mocha/docker/docker-run + + else + + echo "unknown backend '$BACKEND'" + + fi else echo "usage: mocha suv new [--transient] | (up|down|shell|delete MACHINENAME) | list"