diff options
author | Thomas Bächler <thomas@archlinux.org> | 2013-06-16 11:27:58 +0200 |
---|---|---|
committer | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2013-06-16 20:57:10 -0300 |
commit | 0696e888012f89da0b67d6999f14dfe422497914 (patch) | |
tree | 93b810b5c90c9774c3736545fd5ee953e19446a1 /configs/releng/root-image/etc/systemd | |
parent | 5d75049c119983aad719d03e92557f10aef5d199 (diff) | |
download | archiso32-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')
-rwxr-xr-x | configs/releng/root-image/etc/systemd/scripts/choose-mirror | 26 | ||||
-rw-r--r-- | configs/releng/root-image/etc/systemd/system/choose-mirror.service | 10 |
2 files changed, 36 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 diff --git a/configs/releng/root-image/etc/systemd/system/choose-mirror.service b/configs/releng/root-image/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..1e4d771 --- /dev/null +++ b/configs/releng/root-image/etc/systemd/system/choose-mirror.service @@ -0,0 +1,10 @@ +[Unit] +Description=Choose mirror from the kernel command line +ConditionKernelCommandLine=mirror + +[Service] +Type=oneshot +ExecStart=/etc/systemd/scripts/choose-mirror + +[Install] +WantedBy=multi-user.target |