Skip to content

Commit 65b284c

Browse files
committed
build-x86-images: rewrite
* rename e to enlightenment * enable building kde by default * allow building multiple, but not all images (ex. -b "base xfce") * run the script with set -e (exit when there is an error) * do not allow invalid variants * do not allow invalid commandline options * exit with status code 0 when build-x86-images.sh -h is ran
1 parent df59fd5 commit 65b284c

1 file changed

Lines changed: 61 additions & 76 deletions

File tree

build-x86-images.sh.in

Lines changed: 61 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,75 @@
11
#!/bin/sh
22

3-
ARCH=
4-
IMAGE=
3+
set -eu
4+
5+
ARCH=$(uname -m)
6+
IMAGES="base enlightenment xfce mate cinnamon gnome kde lxde lxqt"
7+
REPO=
8+
DATE=$(date +%Y%m%d)
9+
10+
help() {
11+
echo "${0#/*}: [-a arch] [-b base|enlightenment|xfce|mate|cinnamon|gnome|kde|lxde|lxqt] [-r repo]" >&2
12+
}
513

614
while getopts "a:b:hr:" opt; do
715
case $opt in
8-
a) ARCH="$OPTARG";;
9-
b) IMAGE="$OPTARG";;
10-
h) echo "${0#/*}: [-a arch] [-b base|e|xfce|mate|cinnamon|gnome|kde|lxde|lxqt] [-r repo]" >&2; exit 1;;
11-
r) REPO="-r $OPTARG $REPO";;
16+
a) ARCH="$OPTARG";;
17+
b) IMAGES="$OPTARG";;
18+
h) help; exit 0;;
19+
r) REPO="-r $OPTARG $REPO";;
20+
*) help; exit 1;;
1221
esac
1322
done
1423
shift $((OPTIND - 1))
1524

16-
: ${ARCH:=$(uname -m)}
17-
18-
readonly DATE=$(date +%Y%m%d)
19-
readonly BASE_IMG=void-live-${ARCH}-${DATE}.iso
20-
readonly E_IMG=void-live-${ARCH}-${DATE}-enlightenment.iso
21-
readonly XFCE_IMG=void-live-${ARCH}-${DATE}-xfce.iso
22-
readonly MATE_IMG=void-live-${ARCH}-${DATE}-mate.iso
23-
readonly CINNAMON_IMG=void-live-${ARCH}-${DATE}-cinnamon.iso
24-
readonly GNOME_IMG=void-live-${ARCH}-${DATE}-gnome.iso
25-
readonly KDE_IMG=void-live-${ARCH}-${DATE}-kde.iso
26-
readonly LXDE_IMG=void-live-${ARCH}-${DATE}-lxde.iso
27-
readonly LXQT_IMG=void-live-${ARCH}-${DATE}-lxqt.iso
25+
build_variant() {
26+
variant="$1"
27+
IMG_SUFFIX="-$variant"
28+
if [ "$variant" = base ]; then
29+
IMG_SUFFIX=
30+
fi
31+
IMG=void-live-${ARCH}-${DATE}${IMG_SUFFIX}.iso
32+
GRUB_PKGS="grub-i386-efi grub-x86_64-efi"
33+
PKGS="dialog cryptsetup lvm2 mdadm void-docs-browse $GRUB_PKGS"
34+
XORG_PKGS="xorg-minimal xorg-input-drivers xorg-video-drivers setxkbmap xauth font-misc-misc terminus-font dejavu-fonts-ttf alsa-plugins-pulseaudio"
2835

29-
readonly GRUB="grub-i386-efi grub-x86_64-efi"
36+
case $variant in
37+
base) ;;
38+
enlightenment)
39+
PKGS="$PKGS $XORG_PKGS lxdm enlightenment terminology udisks2 firefox-esr"
40+
;;
41+
xfce)
42+
PKGS="$PKGS $XORG_PKGS lxdm xfce4 gnome-themes-standard gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
43+
;;
44+
mate)
45+
PKGS="$PKGS $XORG_PKGS lxdm mate mate-extra gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
46+
;;
47+
cinnamon)
48+
PKGS="$PKGS $XORG_PKGS lxdm cinnamon gnome-keyring colord gnome-terminal gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
49+
;;
50+
gnome)
51+
PKGS="$PKGS $XORG_PKGS gnome firefox-esr"
52+
;;
53+
kde)
54+
PKGS="$PKGS $XORG_PKGS kde5 konsole firefox-esr dolphin"
55+
;;
56+
lxde)
57+
PKGS="$PKGS $XORG_PKGS lxde lxdm gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
58+
;;
59+
lxqt)
60+
PKGS="$PKGS $XORG_PKGS lxqt lxdm gvfs-afc gvfs-mtp gvfs-smb udisks2 qupzilla"
61+
;;
62+
*)
63+
>&2 echo "Unknown variant $variant"
64+
exit 1
65+
;;
66+
esac
3067

31-
readonly BASE_PKGS="dialog cryptsetup lvm2 mdadm void-docs-browse $GRUB"
32-
readonly X_PKGS="$BASE_PKGS xorg-minimal xorg-input-drivers xorg-video-drivers setxkbmap xauth font-misc-misc terminus-font dejavu-fonts-ttf alsa-plugins-pulseaudio"
33-
readonly E_PKGS="$X_PKGS lxdm enlightenment terminology udisks2 firefox-esr"
34-
readonly XFCE_PKGS="$X_PKGS lxdm xfce4 gnome-themes-standard gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
35-
readonly MATE_PKGS="$X_PKGS lxdm mate mate-extra gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
36-
readonly CINNAMON_PKGS="$X_PKGS lxdm cinnamon gnome-keyring colord gnome-terminal gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
37-
readonly GNOME_PKGS="$X_PKGS gnome firefox-esr"
38-
readonly KDE_PKGS="$X_PKGS kde5 konsole firefox-esr dolphin"
39-
readonly LXDE_PKGS="$X_PKGS lxdm lxde gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
40-
readonly LXQT_PKGS="$X_PKGS lxdm lxqt gvfs-afc gvfs-mtp gvfs-smb udisks2 qupzilla"
68+
./mklive.sh -a "$ARCH" -o "$IMG" -p "$PKGS" ${REPO} "$@"
69+
}
4170

4271
[ ! -x mklive.sh ] && exit 0
4372

44-
if [ -z "$IMAGE" -o "$IMAGE" = base ]; then
45-
if [ ! -e $BASE_IMG ]; then
46-
./mklive.sh -a $ARCH -o $BASE_IMG -p "$BASE_PKGS" ${REPO} "$@"
47-
fi
48-
fi
49-
if [ -z "$IMAGE" -o "$IMAGE" = e ]; then
50-
if [ ! -e $E_IMG ]; then
51-
./mklive.sh -a $ARCH -o $E_IMG -p "$E_PKGS" ${REPO} "$@"
52-
fi
53-
fi
54-
if [ -z "$IMAGE" -o "$IMAGE" = xfce ]; then
55-
if [ ! -e $XFCE_IMG ]; then
56-
./mklive.sh -a $ARCH -o $XFCE_IMG -p "$XFCE_PKGS" ${REPO} "$@"
57-
fi
58-
fi
59-
if [ -z "$IMAGE" -o "$IMAGE" = mate ]; then
60-
if [ ! -e $MATE_IMG ]; then
61-
./mklive.sh -a $ARCH -o $MATE_IMG -p "$MATE_PKGS" ${REPO} "$@"
62-
fi
63-
fi
64-
if [ -z "$IMAGE" -o "$IMAGE" = cinnamon ]; then
65-
if [ ! -e $CINNAMON_IMG ]; then
66-
./mklive.sh -a $ARCH -o $CINNAMON_IMG -p "$CINNAMON_PKGS" ${REPO} "$@"
67-
fi
68-
fi
69-
70-
if [ -z "$IMAGE" -o "$IMAGE" = gnome ]; then
71-
if [ ! -e $GNOME_IMG ]; then
72-
./mklive.sh -a $ARCH -o $GNOME_IMG -p "$GNOME_PKGS" ${REPO} "$@"
73-
fi
74-
fi
75-
76-
if [ -z "$IMAGE" -o "$IMAGE" = lxde ]; then
77-
if [ ! -e $LXDE_IMG ]; then
78-
./mklive.sh -a $ARCH -o $LXDE_IMG -p "$LXDE_PKGS" ${REPO} "$@"
79-
fi
80-
fi
81-
if [ -z "$IMAGE" -o "$IMAGE" = lxqt ]; then
82-
if [ ! -e $LXQT_IMG ]; then
83-
./mklive.sh -a $ARCH -o $LXQT_IMG -p "$LXQT_PKGS" ${REPO} "$@"
84-
fi
85-
fi
86-
if [ "$IMAGE" = kde ]; then
87-
if [ ! -e $KDE_IMG ]; then
88-
./mklive.sh -a $ARCH -o $KDE_IMG -p "$KDE_PKGS" ${REPO} "$@"
89-
fi
90-
fi
73+
for image in $IMAGES; do
74+
build_variant "$image"
75+
done

0 commit comments

Comments
 (0)