summaryrefslogtreecommitdiff
path: root/configs/releng/root-image/etc/systemd/scripts
diff options
context:
space:
mode:
authorThomas Bächler <thomas@archlinux.org>2013-06-16 11:27:58 +0200
committerGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2013-06-16 20:57:10 -0300
commit0696e888012f89da0b67d6999f14dfe422497914 (patch)
tree93b810b5c90c9774c3736545fd5ee953e19446a1 /configs/releng/root-image/etc/systemd/scripts
parent5d75049c119983aad719d03e92557f10aef5d199 (diff)
downloadarchiso32-0696e888012f89da0b67d6999f14dfe422497914.tar.xz
releng: Allow specifying a mirror on the kernel command line.
The new mirror= option takes a mirror URL and creates a new mirrorlist. When setting mirror=auto, the mirror is taken from archiso_http_srv in order to keep using the mirror selected in the netboot menu.
Diffstat (limited to 'configs/releng/root-image/etc/systemd/scripts')
-rwxr-xr-xconfigs/releng/root-image/etc/systemd/scripts/choose-mirror26
1 files changed, 26 insertions, 0 deletions
diff --git a/configs/releng/root-image/etc/systemd/scripts/choose-mirror b/configs/releng/root-image/etc/systemd/scripts/choose-mirror
new file mode 100755
index 0000000..0ae0806
--- /dev/null
+++ b/configs/releng/root-image/etc/systemd/scripts/choose-mirror
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+get_cmdline() {
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ $1=*) echo "${param##*=}";
+ return 0
+ ;;
+ esac
+ done
+}
+
+mirror=$(get_cmdline mirror)
+[[ $mirror = auto ]] && mirror=$(get_cmdline archiso_http_srv)
+[[ $mirror ]] || exit 0
+
+mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
+cat >/etc/pacman.d/mirrorlist << EOF
+#
+# Arch Linux repository mirrorlist
+# Generated by archiso
+#
+
+Server = ${mirror%%/}/\$repo/os/\$arch
+EOF