From 61cd7dabdd2c5272a952edd40dffcbc368b596b1 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 14 Aug 2024 00:28:12 +0800 Subject: feat(docker/debian-dev): support both 11 and 12 for apt source. --- .../bootstrap/apt-source/11/get-domain.bash | 5 +++++ .../bootstrap/apt-source/11/replace-domain.bash | 7 +++++++ .../bootstrap/apt-source/11/replace-http.bash | 7 +++++++ .../bootstrap/apt-source/12/get-domain.bash | 6 ++++++ .../bootstrap/apt-source/12/replace-domain.bash | 7 +++++++ .../bootstrap/apt-source/12/replace-http.bash | 7 +++++++ .../bootstrap/apt-source/get-domain.bash | 6 ------ .../bootstrap/apt-source/replace-domain.bash | 7 ------- .../bootstrap/apt-source/replace-http.bash | 7 ------- .../bootstrap/apt-source/setup.bash | 22 +++++++++++++++++++--- .../bootstrap/get-debian-version.bash | 11 +++++++++++ 11 files changed, 69 insertions(+), 23 deletions(-) create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash delete mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash delete mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash delete mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash create mode 100755 docker/crupest-debian-dev/bootstrap/get-debian-version.bash (limited to 'docker/crupest-debian-dev/bootstrap') diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash new file mode 100755 index 0000000..d44ea65 --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash @@ -0,0 +1,5 @@ +#! /usr/bin/env bash + +set -e + +sed "s|.*https\?://\([-_.a-zA-Z0-9]\+\)/.*|\\1|;q" /etc/apt/sources.list diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash new file mode 100755 index 0000000..86e88dc --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.bak." +echo "Replace source domain in /etc/apt/sources.list to $1." +sed -i.bak "s|\(https\?://\)[-_.a-zA-Z0-9]\+/|\\1$1/|" /etc/apt/sources.list diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash new file mode 100755 index 0000000..fae082a --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.bak." +echo "Replace http to https in /etc/apt/sources.list." +sed -i.bak 's/https\?/https/' /etc/apt/sources.list diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash new file mode 100755 index 0000000..a24538c --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash @@ -0,0 +1,6 @@ +#! /usr/bin/env bash + +set -e + +grep -e 'URIs:' /etc/apt/sources.list.d/debian.sources | \ + sed -E 's|URIs:\s*https?://([-_.a-zA-Z0-9]+)/.*|\1|;q' diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash new file mode 100755 index 0000000..d55307c --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list.d/debian.sources to /etc/apt/sources.list.d/debian.sources.bak." +echo "Replace source domain in /etc/apt/sources.list.d/debian.sources to $1." +sed -i.bak -E "s|(URIs:\\s*https?://)[-_.a-zA-Z0-9]+(/.*)|\\1$1\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash new file mode 100755 index 0000000..ed4391d --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.d/debian.sources.bak." +echo "Replace http to https in /etc/apt/sources.list.d/debian.sources." +sed -i.bak -E "s|(URIs:\\s*)https?(://[-_.a-zA-Z0-9]+/.*)|\\1https\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash deleted file mode 100755 index a24538c..0000000 --- a/docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash +++ /dev/null @@ -1,6 +0,0 @@ -#! /usr/bin/env bash - -set -e - -grep -e 'URIs:' /etc/apt/sources.list.d/debian.sources | \ - sed -E 's|URIs:\s*https?://([-_.a-zA-Z0-9]+)/.*|\1|;q' diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash deleted file mode 100755 index d55307c..0000000 --- a/docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env bash - -set -e - -echo "Backup /etc/apt/sources.list.d/debian.sources to /etc/apt/sources.list.d/debian.sources.bak." -echo "Replace source domain in /etc/apt/sources.list.d/debian.sources to $1." -sed -i.bak -E "s|(URIs:\\s*https?://)[-_.a-zA-Z0-9]+(/.*)|\\1$1\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash b/docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash deleted file mode 100755 index ed4391d..0000000 --- a/docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env bash - -set -e - -echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.d/debian.sources.bak." -echo "Replace http to https in /etc/apt/sources.list.d/debian.sources." -sed -i.bak -E "s|(URIs:\\s*)https?(://[-_.a-zA-Z0-9]+/.*)|\\1https\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash index 60583d4..6e504ef 100755 --- a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash +++ b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash @@ -2,16 +2,32 @@ set -e -dir=$(dirname "$0") +dir=/bootstrap/apt-source + +echo "Getting debian version..." +debian_version=$(bash "$dir/../get-debian-version.bash") + +if [[ -z $debian_version ]]; then + echo "Debian version not found." + exit 1 +else + echo "Debian version: $debian_version" +fi + +if [[ $debian_version -ge 12 ]]; then + setup_dir=$dir/12 +else + setup_dir=$dir/11 +fi echo "Setting up apt source..." if [[ -n $CRUPEST_DEBIAN_DEV_IN_CHINA ]]; then echo "In China, using China source..." - "$dir/replace-domain.bash" "$(cat "$dir/china-source.txt")" + "$setup_dir/replace-domain.bash" "$(cat "$dir/china-source.txt")" fi "$dir/install-apt-https.bash" -"$dir/replace-http.bash" +"$setup_dir/replace-http.bash" echo "Setting up apt source done." diff --git a/docker/crupest-debian-dev/bootstrap/get-debian-version.bash b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash new file mode 100755 index 0000000..305e628 --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash @@ -0,0 +1,11 @@ +#! /usr/bin/env bash + +if [ -f /etc/os-release ]; then + . /etc/os-release + if [ "$ID" = "debian" ]; then + echo "$VERSION_ID" + exit 0 + fi +else + +exit 1 -- cgit v1.2.3