1#! /bin/sh
2
3# Configuration: Live systems using signed kernel
4# -----------------------------------------------
5#
6SYSKSIGNED=	\
7	64-dktoolian-bullseye-cli-root	\
8	64-dktoolian-bullseye-gnome
9
10# Configuration: Live systems using unsigned kernel
11# -------------------------------------------------
12#
13SYSKUNSIGNED=	\
14	64-disklessian-bullseye-gnome
15
16
17# Check for setup file, use if available.
18# ---------------------------------------
19#
20if [ -f /etc/default/tftpd-hpa ]
21then
22	. /etc/default/tftpd-hpa
23fi
24
25
26# Use values found in setup files, default values otherwise
27# ---------------------------------------------------------
28#
29if [ "X${TFTP_DIRECTORY}" = "X" ]
30then
31	TFTPROOT=/var/lib/tftpboot
32	# TFTPROOT=/srv/tftp
33else
34	TFTPROOT="${TFTP_DIRECTORY}"
35fi
36
37
38# Link all files from current directory to specified destination directory
39# ------------------------------------------------------------------------
40# parameter: Destination directory name
41# ------------------------------------------------------------------------
42#
43link_to_dir() {
44	local i
45	for i in `find . -type d`
46	do
47		if [ ! -d "$1/$i" ]
48		then
49			echo 'I: Create directory' $1/$i
50			mkdir -p "$1/$i"
51			chmod 755 "$1/$i"
52		fi
53	done
54	for i in `find . -type f`
55	do
56		if [ -f "$1/$i" ]
57		then
58			echo 'W: File' $i already exists in $1
59		else
60			echo 'I: Link file' $i to $1
61			ln "$i" "$1/$i"
62		fi
63	done
64}
65
66
67# Clean up BIOS
68# -------------
69#
70rm -fr ${TFTPROOT}/BIOS/*
71
72# Rebuild BIOS
73# ------------
74#
75cd ${TFTPROOT}/DATA/BIOS-BASE
76link_to_dir ${TFTPROOT}/BIOS
77cd ${TFTPROOT}/DATA/LINUX-LIVE/linux-live
78link_to_dir ${TFTPROOT}/BIOS
79
80for j in	${SYSKSIGNED} ${SYSKUNSIGNED}
81do
82	mkdir -p "${TFTPROOT}/BIOS/$j"
83	cd ${TFTPROOT}/DATA/BIOS-BASE
84	link_to_dir "${TFTPROOT}/BIOS/$j"
85	if [ -d "${TFTPROOT}/DATA/LINUX-LIVE/$j" ]
86	then
87		cd "${TFTPROOT}/DATA/LINUX-LIVE/$j"
88		link_to_dir "${TFTPROOT}/BIOS/$j"
89	else
90		echo 'E: Directory not found:' ${TFTPROOT}/DATA/LINUX-LIVE/$j
91	fi
92done
93
94
95
96# Clean up UEFI SYSLINUX
97# ----------------------
98#
99rm -fr ${TFTPROOT}/UEFI/SYSL/*
100
101# Rebuild UEFI SYSLINUX
102# ---------------------
103#
104cd ${TFTPROOT}/DATA/UEFI-SYSL-BASE
105link_to_dir ${TFTPROOT}/UEFI/SYSL
106cd ${TFTPROOT}/DATA/LINUX-LIVE/linux-live
107link_to_dir ${TFTPROOT}/UEFI/SYSL
108
109for j in	${SYSKSIGNED} ${SYSKUNSIGNED}
110do
111	mkdir -p "${TFTPROOT}/UEFI/SYSL/$j"
112	cd ${TFTPROOT}/DATA/UEFI-SYSL-BASE
113	link_to_dir "${TFTPROOT}/UEFI/SYSL/$j"
114	if [ -d "${TFTPROOT}/DATA/LINUX-LIVE/$j" ]
115	then
116		cd "${TFTPROOT}/DATA/LINUX-LIVE/$j"
117		link_to_dir "${TFTPROOT}/UEFI/SYSL/$j"
118	else
119		echo 'E: Directory not found:' ${TFTPROOT}/DATA/LINUX-LIVE/$j
120	fi
121done
122
123
124# Clean up UEFI GRUB
125# ------------------
126#
127rm -fr ${TFTPROOT}/UEFI/GRUB/*
128rm -fr ${TFTPROOT}/grub
129
130# Rebuild UEFI GRUB
131# -----------------
132#
133cd ${TFTPROOT}/DATA/UEFI-GRUB-BASE
134link_to_dir ${TFTPROOT}/UEFI/GRUB
135cd ${TFTPROOT}/DATA/LINUX-LIVE/linux-live
136link_to_dir ${TFTPROOT}/UEFI/GRUB
137
138for j in	${SYSKSIGNED}
139do
140	mkdir -p "${TFTPROOT}/UEFI/GRUB/$j"
141	# cd ${TFTPROOT}/DATA/UEFI-GRUB-BASE
142	# link_to_dir "${TFTPROOT}/UEFI/GRUB/$j"
143	if [ -d "${TFTPROOT}/DATA/LINUX-LIVE/$j" ]
144	then
145		cd "${TFTPROOT}/DATA/LINUX-LIVE/$j"
146		link_to_dir "${TFTPROOT}/UEFI/GRUB/$j/grub"
147	else
148		echo 'E: Directory not found:' ${TFTPROOT}/DATA/LINUX-LIVE/$j
149	fi
150done
151
152mkdir		${TFTPROOT}/grub
153cd		${TFTPROOT}/DATA/UEFI-GRUB-BASE/grub
154link_to_dir	${TFTPROOT}/grub
155cd		${TFTPROOT}/DATA/UEFI-GRUB-BASE/grub/x86_64-efi
156link_to_dir	${TFTPROOT}/grub
157cd		${TFTPROOT}/DATA/UEFI-GRUB-BASE/grub
158for i in *.pf2
159do
160	if [ ! -f "${TFTPROOT}/grub/$i" ]
161	then
162		ln "$i" ${TFTPROOT}/grub
163	fi
164done
165ln	${TFTPROOT}/DATA/UEFI-GRUB-ROOT/grub.cfg ${TFTPROOT}/grub
166
167