mirror of
https://github.com/openappsec/openappsec.git
synced 2025-11-18 10:10:36 +03:00
Support local managment for embedded agent on nginx
This commit is contained in:
92
external/yq/scripts/setup.sh
vendored
Executable file
92
external/yq/scripts/setup.sh
vendored
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user