summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2024-08-15 12:19:29 +0200
committerRaymaekers Luca <raymaekers.luca@gmail.com>2024-08-15 12:19:29 +0200
commitb6484958979b0bb6398dc95b72f233bea20fe1b4 (patch)
tree828c54ffdc73ad2970c53f3d4200c2cdbfc9b75f /bin
parent86c5ff5335a1adaf721778bdfcb79ff06726e71f (diff)
checkpoint
Diffstat (limited to 'bin')
-rwxr-xr-xbin/extra/auffi131
-rwxr-xr-xbin/extra/muz-sync3
-rwxr-xr-xbin/extra/note19
-rwxr-xr-xbin/extra/notes8
-rwxr-xr-xbin/extra/play3
5 files changed, 162 insertions, 2 deletions
diff --git a/bin/extra/auffi b/bin/extra/auffi
new file mode 100755
index 0000000..ef212f9
--- /dev/null
+++ b/bin/extra/auffi
@@ -0,0 +1,131 @@
+#!/bin/bash
+### Automatically generate UEFI-boot entries
+usage() { printf "Usage:\t aufii \naufii is a simple interactive tool to automatically generate UEFI boot entries. It generates efibootmgr commands and exports them to a small executable. You can safely run the script as it does write nothing without further confirmation. \n [-h]\t<display help>\n "; 1>&2; exit 1; }
+
+
+# Compose [and execute] efibootmgr commands
+while getopts :h OPT; do
+ case ${OPT} in
+ h)
+ usage;;
+ esac
+done
+shift $((OPTIND-1))
+read -r -p "Simple interactive tool to create UEFI-boot entries. No changes will be written to disk before confirmation. Start now (y/n)? " CHOICE
+case ${CHOICE} in
+y)
+echo ...
+echo ...
+read -r -p "Please specify EFI partition: " str
+
+# Detect partitions
+#EFI=$(blkid | grep EFI | awk -F ':' '{print $1}')
+
+EFI=${str}
+EFIU=$(blkid | grep "${EFI}" | awk -F '"' '{print $2}')
+DISK=$(echo "${EFI}" | awk -F 'p' '{print $1}')
+PART=$(echo "${EFI}" | awk -F 'p' '{print $2}')
+AROT=$(lsblk| grep -w "/"|awk -F ' ' '{print $1}'|tail -c4)
+ROOT=$(blkid | grep "${AROT}"| awk -F '"' '{print $2}')
+SWAP=$(blkid | grep swap | awk -F '"' '{print $2}')
+P_S=$(blkid | grep "${SWAP}" | awk -F ':' '{print $1}')
+P_E=$(blkid | grep "${EFI}" | awk -F ':' '{print $1}')
+P_R=$(blkid | grep "${ROOT}"| awk -F ':' '{print $1}')
+
+echo ...
+echo ...
+read -r -p "Include microcode (amd/intel/no)? (a/i/n) " CHOICE
+case ${CHOICE} in
+a)
+echo "Including amd-ucode"
+UCODE="initrd=\amd-ucode.img"
+echo ...
+echo ...;;
+i)
+echo "Including intel-ucode"
+UCODE="initrd=\intel-ucode.img"
+echo ...
+echo ...;;
+n)
+echo "Not using microcode"
+echo ...
+echo ...;;
+esac;;
+n)
+echo "Aborted by user"
+exit 1;;
+esac
+shift $((OPTIND-1))
+
+# Choose kernel
+read -r -p "Choose your kernel: linux, linux-hardened, linux-lts, linux-zen (l/h/s/z) " CHOICE
+case ${CHOICE} in
+l)
+echo "kernel is linux"
+echo ...
+echo ...
+KERN="";;
+h)
+echo "kernel is linux-hardened"
+echo ...
+echo ...
+KERN="-hardened";;
+p)
+echo "kernel is linux-lts"
+echo ...
+echo ...
+KERN="-lts";;
+z)
+echo "kernel is linux-zen"
+echo ...
+echo ...
+KERN="-zen";;
+esac
+shift $((OPTIND-1))
+
+# Name
+read -r -p "Please label the boot entry (e.g. Arch-Linux): " str
+NAME=${str}
+shift $((OPTIND-1))
+
+# Compose commands
+FLBK=$(echo "efibootmgr --disk ${DISK} --part ${PART} --create --label \"${NAME}-Fallback\" --loader /vmlinuz-linux${KERN} --unicode 'root=UUID=${ROOT} resume=UUID=${SWAP} rw ${UCODE} initrd=\initramfs-linux${KERN}-fallback.img'")
+LINX=$(echo "efibootmgr --disk ${DISK} --part ${PART} --create --label \"${NAME}\" --loader /vmlinuz-linux${KERN} --unicode 'root=UUID=${ROOT} resume=UUID=${SWAP} rw ${UCODE} initrd=\initramfs-linux${KERN}.img'")
+
+# Prompt detected partitions and composed commands
+printf "Partitions detected:\nEFI:\t${P_E}\t${EFIU}\nRoot:\t${P_R}\t${ROOT}\nSwap:\t${P_S}\t${SWAP}\n"
+echo ...
+echo ...
+echo "Composed commands:"
+echo ...
+echo "${FLBK}"
+echo ...
+echo "${LINX}"
+echo ...
+echo "To add additional kernel parameters just choose the first option in the next step and edit the file before executing it."
+echo ...
+echo ...
+# Write to disk and execute or abort
+write_exec (){
+echo "#!/bin/bash" > UEFI_gen${KERN}
+echo "${FLBK}" >> UEFI_gen${KERN}
+echo "${LINX}" >> UEFI_gen${KERN}
+echo "exit 0" >> UEFI_gen${KERN}
+echo "# See man efibootmgr" >> UEFI_gen${KERN}
+chmod +x UEFI_gen${KERN}
+printf "Commands written to file UEFI_gen${KERN}"
+}
+
+read -r -p "Create executable, create and execute (sets UEFI boot entries) or abort (c/ce/a)? " CHOICE
+case ${CHOICE} in
+c) # write to file
+write_exec;;
+ce) # write to file and execute it
+write_exec
+./UEFI_gen${KERN}
+printf "Changes written, poweroff and restart, don't reboot.";;
+a) # abort
+printf "Aborted, no changes written to disk.\n";;
+esac
+shift $((OPTIND-1))
+exit 0 \ No newline at end of file
diff --git a/bin/extra/muz-sync b/bin/extra/muz-sync
index a81ef74..3a5c5f1 100755
--- a/bin/extra/muz-sync
+++ b/bin/extra/muz-sync
@@ -4,7 +4,6 @@ trap "exit 1" INT
music="$(xdg-user-dir MUSIC)"
>&2 printf "music: %s\n" "$music"
-# recursive, links, fuzzy, partial, progress
-while ! rsync -rlyP --size-only db:/media/basilisk/music/sorted/ "$music"
+while ! rsync --recursive --verbose --partial --progress --ignore-existing --size-only db:/media/basilisk/music/sorted/ "$music"
do :
done
diff --git a/bin/extra/note b/bin/extra/note
new file mode 100755
index 0000000..82ae5e0
--- /dev/null
+++ b/bin/extra/note
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Write a note
+
+notes="$HOME/notes"
+if [ ! -d "$notes" ]; then
+ >&2 printf 'Create the notes directory.\n'
+ exit 1
+fi
+
+if [ "$1" ]; then
+ name="$1"
+else
+ >&2 printf 'name> '
+ name="$(head -n 1)"
+fi
+[ "$name" ] || exit 1
+
+$EDITOR $HOME/notes/"$name".md
diff --git a/bin/extra/notes b/bin/extra/notes
new file mode 100755
index 0000000..e3b4a4d
--- /dev/null
+++ b/bin/extra/notes
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+notes="$HOME/notes"
+note="$(find "$notes" -type f -name '*.md' |
+ sed "s@$notes/@@;s@\.md\$@@" |
+ fzf)"
+[ "$note" ] || exit 1
+$EDITOR "$notes/$note.md"
diff --git a/bin/extra/play b/bin/extra/play
new file mode 100755
index 0000000..fb1a629
--- /dev/null
+++ b/bin/extra/play
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+mpv "$(clipo)"