71 lines
1.9 KiB
Bash
Executable File
71 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
USER_NAME="${USER:-coder}"
|
|
HOME_DIR="${HOME:-/home/${USER_NAME}}"
|
|
WORKSPACES_DIR="/workspaces"
|
|
BIN_DIR="${HOME_DIR}/bin"
|
|
META_DIR="/tmp/git-metadata"
|
|
|
|
mkdir -p "${BIN_DIR}" "${HOME_DIR}/.config" "${META_DIR}" "${WORKSPACES_DIR}"
|
|
|
|
if [[ -n "${CODER_WORKSPACE_ID:-}" ]]; then
|
|
echo "${CODER_WORKSPACE_ID}" > "${META_DIR}/workspace-id"
|
|
fi
|
|
|
|
# ensure the dev workspace has sensible permissions
|
|
if command -v chown >/dev/null 2>&1 && [[ "${EUID}" -eq 0 ]]; then
|
|
chown -R "${USER_NAME}:${USER_NAME}" "${HOME_DIR}" "${WORKSPACES_DIR}" || true
|
|
fi
|
|
|
|
# Configure git user (startup script already sets git config, but we guard here too)
|
|
if command -v git >/dev/null 2>&1; then
|
|
if [[ -n "${GIT_AUTHOR_NAME:-}" ]]; then
|
|
git config --global user.name "${GIT_AUTHOR_NAME}"
|
|
fi
|
|
if [[ -n "${GIT_AUTHOR_EMAIL:-}" ]]; then
|
|
git config --global user.email "${GIT_AUTHOR_EMAIL}"
|
|
fi
|
|
fi
|
|
|
|
# Build a lightweight devinfo helper for quick diagnostics.
|
|
cat <<'SCRIPT' > "${BIN_DIR}/devinfo"
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
echo "Workspace diagnostics"
|
|
echo "----------------------"
|
|
echo "User: $(whoami)"
|
|
echo "Home: ${HOME}"
|
|
echo "Workspace: /workspaces"
|
|
|
|
if command -v node >/dev/null 2>&1; then
|
|
echo "Node: $(node --version)"
|
|
fi
|
|
if command -v npm >/dev/null 2>&1; then
|
|
echo "npm: $(npm --version)"
|
|
fi
|
|
if command -v python3 >/dev/null 2>&1; then
|
|
echo "Python: $(python3 --version | awk '{print $2}')"
|
|
fi
|
|
if command -v rustc >/dev/null 2>&1; then
|
|
echo "Rust: $(rustc --version | awk '{print $2}')"
|
|
fi
|
|
if command -v cargo >/dev/null 2>&1; then
|
|
echo "Cargo: $(cargo --version | awk '{print $2}')"
|
|
fi
|
|
|
|
if [[ -n "${POSTGRES_URL:-}" ]]; then
|
|
echo "PostgreSQL: ${POSTGRES_URL}"
|
|
fi
|
|
if [[ -n "${REDIS_URL:-}" ]]; then
|
|
echo "Redis: ${REDIS_URL}"
|
|
fi
|
|
if [[ -n "${QDRANT_URL:-}" ]]; then
|
|
echo "Qdrant: ${QDRANT_URL}"
|
|
fi
|
|
SCRIPT
|
|
chmod +x "${BIN_DIR}/devinfo"
|
|
|
|
echo "Workspace initialisation complete. Run 'devinfo' for a quick status summary."
|