summaryrefslogtreecommitdiffstats
path: root/krebs/4lib/infest/prepare.sh
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/4lib/infest/prepare.sh')
-rw-r--r--krebs/4lib/infest/prepare.sh51
1 files changed, 41 insertions, 10 deletions
diff --git a/krebs/4lib/infest/prepare.sh b/krebs/4lib/infest/prepare.sh
index 07c00c3a5..9fbd5be86 100644
--- a/krebs/4lib/infest/prepare.sh
+++ b/krebs/4lib/infest/prepare.sh
@@ -5,10 +5,14 @@ prepare() {(
if test -e /etc/os-release; then
. /etc/os-release
case $ID in
+ arch)
+ prepare_arch "$@"
+ exit
+ ;;
centos)
case $VERSION_ID in
7)
- prepare_centos7 "$@"
+ prepare_centos "$@"
exit
;;
esac
@@ -19,17 +23,28 @@ prepare() {(
exit -1
)}
-prepare_centos7() {
+prepare_arch() {
+ type bzip2 2>/dev/null || pacman -S --noconfirm bzip2
+ type git 2>/dev/null || pacman -S --noconfirm git
+ type rsync 2>/dev/null || pacman -S --noconfirm rsync
+ prepare_common
+}
+
+prepare_centos() {
type bzip2 2>/dev/null || yum install -y bzip2
type git 2>/dev/null || yum install -y git
type rsync 2>/dev/null || yum install -y rsync
+ prepare_common
+}
+
+prepare_common() {
+
if ! getent group nixbld >/dev/null; then
groupadd -g 30000 -r nixbld
fi
for i in `seq 1 10`; do
if ! getent passwd nixbld$i 2>/dev/null; then
useradd \
- -c "CentOS Nix build user $i" \
-d /var/empty \
-g 30000 \
-G 30000 \
@@ -38,7 +53,6 @@ prepare_centos7() {
-s /sbin/nologin \
-u $(expr 30000 + $i) \
nixbld$i
- rm -f /var/spool/mail/nixbld$i
fi
done
@@ -46,29 +60,46 @@ prepare_centos7() {
# mount install directory
#
- if ! mount | grep -Fq '/dev/mapper/centos-root on /mnt type xfs'; then
+ if ! mount | grep -Fq ' on /mnt type '; then
mkdir -p /newshit
mount --bind /newshit /mnt
fi
- if ! mount | grep -Fq '/dev/sda1 on /mnt/boot type xfs'; then
+ if ! mount | grep -Fq ' on /mnt/boot type '; then
mkdir -p /mnt/boot
- mount /dev/sda1 /mnt/boot
- fi
- mount | grep 'on /mnt\>' >&2
+ if mount | grep -Fq ' on /boot type '; then
+ bootdev=$(mount | grep " on /boot type " | sed 's/ .*//')
+ mount $bootdev /mnt/boot
+ else
+ mount --bind /boot/ /mnt/boot
+ fi
+
+ fi
#
# prepare install directory
#
+ rootpart=$(mount | grep " on / type" | sed 's/ .*//')
+
mkdir -p /mnt/etc/nixos
mkdir -m 0555 -p /mnt/var/empty
- if ! mount | grep -Fq '/dev/mapper/centos-root on /mnt/root type xfs'; then
+ if ! mount | grep -Fq "$rootpart on /mnt/root type "; then
mkdir -p /mnt/root
mount --bind /root /mnt/root
fi
+
+ #
+ # prepare nix store path
+ #
+
+ mkdir -v -m 0755 -p /nix
+ if ! mount | grep -Fq "$rootpart on /mnt/nix type "; then
+ mkdir -p /mnt/nix
+ mount --bind /nix /mnt/nix
+ fi
}
prepare "$@"