Skip to content

Commit 566df3f

Browse files
committed
Improved logging and message display
1 parent dbcf36d commit 566df3f

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

multios-usb.sh

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,26 @@ data_size=""
1515
efi_size="25M"
1616
data_label="MultiOS-USB"
1717
updateOnly="no"
18-
log_file="install.log"
18+
log_file=$(mktemp)
19+
20+
# shellcheck disable=SC2154
21+
trap '{
22+
status=$?
23+
if [ $status -ne 0 ]; then
24+
echo -e "\e[1;31m"
25+
echo "=================================================================="
26+
echo "Installation error!"
27+
echo "Below are the details that may be helpful when reporting the issue"
28+
echo "=================================================================="
29+
echo "Exit code: $status"
30+
cat $log_file
31+
rm -f $log_file
32+
echo -e "==================================================================\e[0m"
33+
fi
34+
}' EXIT
1935

2036
cd "$(dirname "$(readlink -f "$0")")"
21-
echo -e "Arguments: $@\n" > $log_file
37+
echo "Arguments: $*" > $log_file
2238

2339
showUsage() {
2440
cat <<- EOF
@@ -41,14 +57,14 @@ showUsage() {
4157
listDevices() {
4258
echo "Detected USB devices:"
4359
echo -------------------------------------------------------------
44-
lsblk -p -d -o NAME,MODEL,SIZE,TRAN | grep 'usb' | sed 's/usb$//'
60+
lsblk -p -d -o NAME,MODEL,SIZE,TRAN | grep 'usb' | sed 's/usb$//' || true
4561
echo -------------------------------------------------------------
4662
}
4763

4864
listAllRwDevices() {
4965
echo "Detected writable devices:"
5066
echo -------------------------------------------------------------
51-
lsblk -p -d -o NAME,MODEL,SIZE,TRAN,RO | grep '0$' | sed 's/0$//'
67+
lsblk -p -d -o NAME,MODEL,SIZE,TRAN,RO | grep '0$' | sed 's/0$//' || true
5268
echo -------------------------------------------------------------
5369
}
5470

@@ -89,6 +105,7 @@ while [ "$#" -gt 0 ]; do
89105
data_size="+$1"
90106
else
91107
echo "Error! Incorrect partition size. Example: 500M, 5G"
108+
exit 1
92109
fi
93110
;;
94111
*)
@@ -141,7 +158,7 @@ if [[ $updateOnly == yes ]]; then
141158
;;
142159
*)
143160
echo -e '\nAnswer not "YeS". Exiting...'
144-
exit 1
161+
exit 0
145162
;;
146163
esac
147164

@@ -252,19 +269,19 @@ case $yN in
252269
;;
253270
*)
254271
echo 'Answer not "YeS". Exiting...'
255-
exit 1
272+
exit 0
256273
;;
257274
esac
258275

259276
umount -f "${devp}"* &> /dev/null || true
260277

261278
echo "Creating partitions..."
262-
sgdisk -Z "$dev" >> $log_file
263-
sgdisk -n 1::"+${efi_size}" -t 1:0700 -c 1:"EFI System" -A 1:set:0 -A 1:set:62 -A 1:set:63 "$dev" >> $log_file
264-
sgdisk -n 2::"${data_size}" -t 2:"$part_code" -c 2:"$part_name" "$dev" >> $log_file
279+
sgdisk -Z "$dev" &>> $log_file
280+
sgdisk -n 1::"+${efi_size}" -t 1:0700 -c 1:"EFI System" -A 1:set:0 -A 1:set:62 -A 1:set:63 "$dev" &>> $log_file
281+
sgdisk -n 2::"${data_size}" -t 2:"$part_code" -c 2:"$part_name" "$dev" &>> $log_file
265282

266-
wipefs -afq "${devp}1"
267-
wipefs -afq "${devp}2"
283+
wipefs -af "${devp}1" &>> $log_file
284+
wipefs -af "${devp}2" &>> $log_file
268285

269286
echo "Formating partitions..."
270287
mkfs.fat -F 16 -n "MultiOS-EFI" "${devp}1" &>> $log_file
@@ -318,6 +335,8 @@ cp -r cert/ $part_efi/EFI/
318335
dd conv=fsync status=none if="$part_efi/grub/i386-pc/boot.img" of="${dev}" bs=1 count=446
319336
dd conv=fsync status=none if="$part_efi/grub/i386-pc/core.img" of="${dev}" bs=512 count=2014 seek=34
320337

338+
mv "$log_file" $part_data/MultiOS-USB/install.log
339+
321340
sync
322341
umount $part_efi
323342
umount $part_data

0 commit comments

Comments
 (0)