projects/aports·blob master · refs

66 lines · 1.1 KiB

1#!/bin/sh -e
2
3HOSTNAME="$1"
4if [ -z "$HOSTNAME" ]; then
5 echo "usage: $0 hostname"
6 exit 1
7fi
8
9cleanup() {
10 rm -rf "$tmp"
11}
12
13makefile() {
14 OWNER="$1"
15 PERMS="$2"
16 FILENAME="$3"
17 cat > "$FILENAME"
18 chown "$OWNER" "$FILENAME"
19 chmod "$PERMS" "$FILENAME"
20}
21
22rc_add() {
23 mkdir -p "$tmp"/etc/runlevels/"$2"
24 ln -sf /etc/init.d/"$1" "$tmp"/etc/runlevels/"$2"/"$1"
25}
26
27tmp="$(mktemp -d)"
28trap cleanup EXIT
29
30mkdir -p "$tmp"/etc
31makefile root:root 0644 "$tmp"/etc/hostname <<EOF
32$HOSTNAME
33EOF
34
35mkdir -p "$tmp"/etc/network
36makefile root:root 0644 "$tmp"/etc/network/interfaces <<EOF
37auto lo
38iface lo inet loopback
39
40auto eth0
41iface eth0 inet dhcp
42EOF
43
44mkdir -p "$tmp"/etc/apk
45makefile root:root 0644 "$tmp"/etc/apk/world <<EOF
46alpine-base
47EOF
48
49rc_add devfs sysinit
50rc_add dmesg sysinit
51rc_add mdev sysinit
52rc_add hwdrivers sysinit
53rc_add modloop sysinit
54
55rc_add hwclock boot
56rc_add modules boot
57rc_add sysctl boot
58rc_add hostname boot
59rc_add bootmisc boot
60rc_add syslog boot
61
62rc_add mount-ro shutdown
63rc_add killprocs shutdown
64rc_add savecache shutdown
65
66tar -c -C "$tmp" etc | gzip -9n > $HOSTNAME.apkovl.tar.gz