This commit is contained in:
2025-09-19 18:37:42 +00:00
parent 61648dfcf4
commit 1fd116b564
2 changed files with 68 additions and 3 deletions

View File

@@ -2,13 +2,38 @@
set -euo pipefail
if command -v apt-get >/dev/null 2>&1; then
wait_for_apt() {
if command -v fuser >/dev/null 2>&1; then
while \
fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1 ||
fuser /var/lib/apt/lists/lock >/dev/null 2>&1 ||
fuser /var/lib/dpkg/lock >/dev/null 2>&1; do
echo "Waiting for apt locks to clear..."
sleep 2
done
else
# Fallback when fuser is unavailable
sleep 2
fi
}
apt_exec() {
if command -v sudo >/dev/null 2>&1; then
sudo "$@"
else
"$@"
fi
}
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update -qq
sudo apt-get install -y \
wait_for_apt
apt_exec apt-get update -qq
wait_for_apt
apt_exec apt-get install -y \
make tree jq curl wget unzip git ripgrep fd-find htop >/dev/null
# fd binary name differs on Debian
if [[ ! -e /usr/local/bin/fd && -e /usr/bin/fdfind ]]; then
sudo ln -sf /usr/bin/fdfind /usr/local/bin/fd
apt_exec ln -sf /usr/bin/fdfind /usr/local/bin/fd
fi
fi

View File

@@ -182,4 +182,44 @@ module "claude_code" {
workdir = "/workspaces"
group = "AI Tools"
order = 30
pre_install_script = <<-EOT
#!/bin/bash
set -euo pipefail
if curl --help 2>&1 | grep -q -- "--retry-all-errors"; then
exit 0
fi
if ! command -v apt-get >/dev/null 2>&1; then
exit 0
fi
wait_for_apt() {
if command -v fuser >/dev/null 2>&1; then
while \
fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1 ||
fuser /var/lib/apt/lists/lock >/dev/null 2>&1 ||
fuser /var/lib/dpkg/lock >/dev/null 2>&1; do
echo "Waiting for apt locks to clear..." >&2
sleep 2
done
else
sleep 2
fi
}
apt_exec() {
if command -v sudo >/dev/null 2>&1; then
sudo "$@"
else
"$@"
fi
}
export DEBIAN_FRONTEND=noninteractive
wait_for_apt
apt_exec apt-get update -qq
wait_for_apt
apt_exec apt-get install -y curl >/dev/null
EOT
}