mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
93 lines
2.2 KiB
Bash
93 lines
2.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
find_mgr() {
|
||
|
if hash minishift 2>/dev/null; then
|
||
|
echo "minishift"
|
||
|
else
|
||
|
if hash docker-machine 2>/dev/null; then
|
||
|
echo "docker-machine"
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
get_vm_name() {
|
||
|
case "$1" in
|
||
|
minishift)
|
||
|
echo "minishift"
|
||
|
;;
|
||
|
docker-machine)
|
||
|
echo "${DOCKER_MACHINE_NAME}"
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
is_vm_running() {
|
||
|
local vm=$1
|
||
|
declare -a running=($(VBoxManage list runningvms | awk '{ print $1 }'))
|
||
|
local result='false'
|
||
|
|
||
|
for rvm in "${running[@]}"; do
|
||
|
if [[ "${rvm}" == *"${vm}"* ]]; then
|
||
|
result='true'
|
||
|
fi
|
||
|
done
|
||
|
echo "$result"
|
||
|
}
|
||
|
|
||
|
if hash cygpath 2>/dev/null; then
|
||
|
PROJECT_DIR=$(cygpath -w -a "$(pwd)")
|
||
|
else
|
||
|
PROJECT_DIR=$(pwd)
|
||
|
fi
|
||
|
|
||
|
VM_MGR=$(find_mgr)
|
||
|
if [[ -z $VM_MGR ]]; then
|
||
|
echo "ERROR: No VM Manager found; expected one of ['minishift', 'docker-machine']"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
VM_NAME=$(get_vm_name "$VM_MGR")
|
||
|
if [[ -z $VM_NAME ]]; then
|
||
|
echo "ERROR: No VM found; try running 'eval $(docker-machine env)'"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if ! hash VBoxManage 2>/dev/null; then
|
||
|
echo "VirtualBox executable 'VBoxManage' not found in path"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
avail=$(is_vm_running "$VM_NAME")
|
||
|
if [[ "$avail" == *"true"* ]]; then
|
||
|
res=$(VBoxManage sharedfolder add "${VM_NAME}" --name "${PROJECT}" --hostpath "${PROJECT_DIR}" --transient 2>&1)
|
||
|
if [[ -z $res || $res == *"already exists"* ]]; then
|
||
|
# no need to show that it already exists
|
||
|
:
|
||
|
else
|
||
|
echo "$res"
|
||
|
exit 1
|
||
|
fi
|
||
|
echo "VM: [${VM_NAME}] -- Added Sharedfolder [${PROJECT}] @Path [${PROJECT_DIR}]"
|
||
|
else
|
||
|
echo "$VM_NAME is not currently running; please start your VM and try again."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
SSH_CMD="sudo mkdir -p /${PROJECT} ; sudo mount -t vboxsf ${PROJECT} /${PROJECT}"
|
||
|
case "${VM_MGR}" in
|
||
|
minishift)
|
||
|
minishift ssh "${SSH_CMD}"
|
||
|
echo "VM: [${VM_NAME}] -- Mounted Sharedfolder [${PROJECT}] @VM Path [/${PROJECT}]"
|
||
|
;;
|
||
|
docker-machine)
|
||
|
docker-machine ssh "${VM_NAME}" "${SSH_CMD}"
|
||
|
echo "VM: [${VM_NAME}] -- Mounted Sharedfolder [${PROJECT}] @VM Path [/${PROJECT}]"
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|