summaryrefslogtreecommitdiff
path: root/examples/build_gold_image/build_archlinux.sh
blob: 6456164f6e2d7641975f235bdae4695297456ef6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/sh

# ArchLinux

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:${PATH}

ARCH=$1

if test "x$ARCH" = "x"; then
	echo "One argument expected (architecture)" 1>&2
	exit 1
fi

case $ARCH in
	i686)
		PACKAGE_ARCH=i386
		ARCH_SWITCH=linux32
		;;
		
	x86_64)
		PACKAGE_ARCH=x86_64
		ARCH_SWITCH=
		;;
		
	*)
		echo "Unsupported architecture '$ARCH'" 1>&2
		exit 1
esac

CHROOT_DIR=archlinux-${ARCH}

umount ${CHROOT_DIR}-mnt/proc
umount ${CHROOT_DIR}-mnt

rm -rf $CHROOT_DIR

mkdir $CHROOT_DIR

# pacstrap only installs into a mountpoint, so emulate one
mkdir ${CHROOT_DIR}-mnt
mount --bind ${CHROOT_DIR} ${CHROOT_DIR}-mnt

${ARCH_SWITCH} pacstrap ${CHROOT_DIR}-mnt filesystem bash pacman

${ARCH_SWITCH} pacstrap ${CHROOT_DIR}-mnt sed grep shadow

${ARCH_SWITCH} pacstrap ${CHROOT_DIR}-mnt filesystem

${ARCH_SWITCH} arch-chroot ${CHROOT_DIR} pacman --noconfirm -Syyu

cp $CHROOT_DIR/etc/skel/.bashrc $CHROOT_DIR/root
cp $CHROOT_DIR/etc/skel/.bash_profile $CHROOT_DIR/root
cp $CHROOT_DIR/etc/skel/.bash_logout $CHROOT_DIR/root

cat >> $CHROOT_DIR/root/.bash_profile <<EOF
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
export PS1='[archlinux:\u@\h \W]\$ '
EOF

# development stuff

${ARCH_SWITCH} arch-chroot ${CHROOT_DIR} pacman -S --noconfirm make gcc cmake tar openssh git ccache distcc

umount ${CHROOT_DIR}-mnt
rmdir ${CHROOT_DIR}-mnt