54 lines
1.1 KiB
Bash
54 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
enable_deb822_sources() {
|
|
local file="$1"
|
|
local tmp
|
|
|
|
tmp="$(mktemp)"
|
|
awk '
|
|
/^Types:/ {
|
|
if ($0 !~ /(^|[[:space:]])deb-src($|[[:space:]])/) {
|
|
print $0 " deb-src"
|
|
next
|
|
}
|
|
}
|
|
{ print }
|
|
' "$file" > "$tmp"
|
|
cat "$tmp" > "$file"
|
|
rm -f "$tmp"
|
|
}
|
|
|
|
enable_legacy_sources() {
|
|
local file="$1"
|
|
local output="$2"
|
|
|
|
awk '
|
|
/^[[:space:]]*deb[[:space:]]/ {
|
|
line = $0
|
|
sub(/^[[:space:]]*deb[[:space:]]+/, "deb-src ", line)
|
|
print line
|
|
}
|
|
' "$file" > "$output"
|
|
}
|
|
|
|
found_sources=0
|
|
|
|
for sources_file in /etc/apt/sources.list.d/*.sources; do
|
|
if [[ -f "$sources_file" ]]; then
|
|
found_sources=1
|
|
enable_deb822_sources "$sources_file"
|
|
fi
|
|
done
|
|
|
|
if [[ -f /etc/apt/sources.list ]]; then
|
|
found_sources=1
|
|
enable_legacy_sources /etc/apt/sources.list \
|
|
/etc/apt/sources.list.d/codex-deb-src.list
|
|
fi
|
|
|
|
if [[ "$found_sources" -eq 0 ]]; then
|
|
echo "No apt source list files were found under /etc/apt" >&2
|
|
exit 1
|
|
fi
|