105 lines
3.4 KiB
Bash
105 lines
3.4 KiB
Bash
#!/bin/bash
|
|
. ./lib
|
|
|
|
options=()
|
|
options+=("Edit entry" "")
|
|
options+=("" "")
|
|
options+=("Update ucode" "")
|
|
options+=("" "")
|
|
options+=("Create entry" "")
|
|
options+=("Delete entry" "")
|
|
|
|
defaultitem="Edit entry"
|
|
sel=$(dialog --backtitle "$apptitle" --title "Systemd Entries Menu :" --default-item "$defaultitem" --cancel-button "Back" --menu "" 0 0 0 \
|
|
"${options[@]}" \
|
|
3>&1 1>&2 2>&3)
|
|
if [ ! "$?" = "0" ]; then
|
|
exit 1
|
|
fi
|
|
sed -i "/^defaultitem=/c\defaultitem=\"$sel\"" $0
|
|
|
|
case $sel in
|
|
'Edit entry')
|
|
entries=$(ls /boot/loader/entries)
|
|
entrylist=()
|
|
for itm in $entries; do
|
|
entrylist+=("${itm::-5}" "")
|
|
done
|
|
sel=$(dialog --backtitle "$apptitle" --title "Edit entry :" --cancel-button "Cancel" --menu "" 0 0 0 \
|
|
"${entrylist[@]}" \
|
|
3>&1 1>&2 2>&3)
|
|
if [ "$?" = "0" ]; then
|
|
editfile /boot/loader/entries/$sel.conf
|
|
fi
|
|
;;
|
|
'Create entry')
|
|
entry=$(dialog --backtitle "$apptitle" --title "Create entry" --inputbox "Enter the new entry name :" 0 0 3>&1 1>&2 2>&3)
|
|
if [ "$?" = "0" ]; then
|
|
cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/$entry.conf
|
|
sed -i "s/Arch Linux/$entry/" /boot/loader/entries/$entry.conf
|
|
editfile /boot/loader/entries/$entry.conf
|
|
fi
|
|
;;
|
|
'Delete entry')
|
|
entries=$(ls /boot/loader/entries)
|
|
entrylist=()
|
|
for itm in $entries; do
|
|
entrylist+=("${itm::-5}" "")
|
|
done
|
|
sel=$(dialog --backtitle "$apptitle" --title "Delete entry :" --cancel-button "Cancel" --menu "" 0 0 0 \
|
|
"${entrylist[@]}" \
|
|
3>&1 1>&2 2>&3)
|
|
if [ "$?" = "0" ]; then
|
|
if (confirm "Delete $sel entry ?") then
|
|
rm /boot/loader/entries/$sel.conf
|
|
fi
|
|
fi
|
|
;;
|
|
'Update ucode')
|
|
entries=$(ls /boot/loader/entries)
|
|
entrylist=()
|
|
for itm in $entries; do
|
|
entrylist+=("${itm::-5}" "" on)
|
|
done
|
|
sel=$(dialog --backtitle "$apptitle" --title "Update ucode of :" --cancel-button "Cancel" --checklist "" 0 0 0 \
|
|
"${entrylist[@]}" \
|
|
3>&1 1>&2 2>&3)
|
|
if [ "$?" = "0" ]; then
|
|
endmsg="Nothing to do !"
|
|
clear
|
|
for itm in $sel; do
|
|
itm=${itm//\"/}
|
|
if [ -f /boot/amd-ucode.img ]; then
|
|
if [ ! "$(cat /boot/loader/entries/$itm.conf | grep amd-ucode.img)" ]; then
|
|
endmsg=""
|
|
echo "Add amd-ucode to $itm"
|
|
sed -i "/vmlinuz/a initrd /amd-ucode.img" /boot/loader/entries/$itm.conf
|
|
fi
|
|
else
|
|
if [ "$(cat /boot/loader/entries/$itm.conf | grep amd-ucode.img)" ]; then
|
|
endmsg=""
|
|
echo "Remove amd-ucode from $itm"
|
|
sed -i "/amd-ucode.img/d" /boot/loader/entries/$itm.conf
|
|
fi
|
|
fi
|
|
if [ -f /boot/intel-ucode.img ]; then
|
|
if [ ! "$(cat /boot/loader/entries/$itm.conf | grep intel-ucode.img)" ]; then
|
|
endmsg=""
|
|
echo "Add intel-ucode to $itm"
|
|
sed -i "/vmlinuz/a initrd /intel-ucode.img" /boot/loader/entries/$itm.conf
|
|
fi
|
|
else
|
|
if [ "$(cat /boot/loader/entries/$itm.conf | grep intel-ucode.img)" ]; then
|
|
endmsg=""
|
|
echo "Remove intel-ucode from $itm"
|
|
sed -i "/intel-ucode.img/d" /boot/loader/entries/$itm.conf
|
|
fi
|
|
fi
|
|
done
|
|
echo "$endmsg"
|
|
pressanykey
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
exit 0
|