diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-08-15 12:19:29 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-08-15 12:19:29 +0200 |
commit | b6484958979b0bb6398dc95b72f233bea20fe1b4 (patch) | |
tree | 828c54ffdc73ad2970c53f3d4200c2cdbfc9b75f /bin | |
parent | 86c5ff5335a1adaf721778bdfcb79ff06726e71f (diff) |
checkpoint
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/extra/auffi | 131 | ||||
-rwxr-xr-x | bin/extra/muz-sync | 3 | ||||
-rwxr-xr-x | bin/extra/note | 19 | ||||
-rwxr-xr-x | bin/extra/notes | 8 | ||||
-rwxr-xr-x | bin/extra/play | 3 |
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)" |