2025-11-05 18:21:30 -05:00
|
|
|
DEVENV_IMAGE='localhost/toolbox-dev-env:latest'
|
|
|
|
|
|
|
|
|
|
function dev() {
|
|
|
|
|
if [ ${#} -lt 1 ]; then
|
|
|
|
|
echo "WARNING: Missing project name";
|
|
|
|
|
project=""
|
|
|
|
|
else
|
2025-11-07 12:01:28 -05:00
|
|
|
project="${1}"
|
2025-11-05 18:21:30 -05:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -f '/run/.toolboxenv' ]; then
|
|
|
|
|
cd "${PROJECTS_DIR}/${project}";
|
|
|
|
|
|
|
|
|
|
if [ -f "${PWD}/ansible.cfg" ]; then
|
|
|
|
|
export ANSIBLE_CONFIG="${PWD}/ansible.cfg";
|
|
|
|
|
export ANSIBLE_COLLECTIONS_PATH="${PWD}/.ansible"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -f "${PWD}/pyproject.toml" ]; then
|
|
|
|
|
poetry_venv=$(poetry env info --path)
|
|
|
|
|
|
|
|
|
|
if [ ! -z "${poetry_venv}" ]; then
|
|
|
|
|
source "${poetry_venv}/bin/activate";
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
if [ ! -d "${PROJECTS_PATH}/${project}" ]; then
|
|
|
|
|
echo "ERROR: Project path ${PROJECTS_PATH}/${project} does not exist";
|
|
|
|
|
return 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
local slug=$(random 8)
|
|
|
|
|
local container_name="toolbox-${project:-generic}-${slug}"
|
|
|
|
|
|
|
|
|
|
toolbox create --image="${DEVENV_IMAGE}" "${container_name}" &>/dev/null || return 1
|
|
|
|
|
|
|
|
|
|
local current=$(pwd)
|
|
|
|
|
cd "${PROJECTS_PATH}/${project}"
|
|
|
|
|
echo ">>> Loading project: ${project}"
|
|
|
|
|
echo ">>> ${PWD}"
|
|
|
|
|
toolbox enter "${container_name}"
|
2025-11-05 23:12:53 -05:00
|
|
|
echo ">>> Exited: ${container_name}"
|
2025-11-05 18:21:30 -05:00
|
|
|
cd ${current}
|
|
|
|
|
|
|
|
|
|
podman container stop "${container_name}" &>/dev/null
|
|
|
|
|
podman container rm --force "${container_name}" &>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if [ -f '/run/.toolboxenv' ]; then
|
|
|
|
|
if [ "${PWD}" == "$PROJECTS_PATH/*" ]; then
|
|
|
|
|
dev $(basename "${PWD}")
|
|
|
|
|
fi
|
2025-11-07 12:01:28 -05:00
|
|
|
fi
|