From 6c9aa7252f43dab0c9865584b60fedf718682c6c Mon Sep 17 00:00:00 2001 From: PrincessPi3 Date: Mon, 18 May 2026 21:00:50 -0600 Subject: [PATCH] this is my life now. infinite frustration cast upon me by an evil curse --- customscripts/img_dump.sh | 44 +++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/customscripts/img_dump.sh b/customscripts/img_dump.sh index 80b043f..cfafd74 100644 --- a/customscripts/img_dump.sh +++ b/customscripts/img_dump.sh @@ -6,7 +6,7 @@ ## x ERR/TERMINATE traps ### x NO cleanup trap on EXIT ## x finish the pi query -## add filename query +## x add filename query set -euo pipefail # fail on fuckups to iterate fasterrr :pope: strict fuk u mode :3 @@ -16,21 +16,24 @@ timestamp="$(date +%Y-%m-%d-%H%M-%Z)" # img_name="${timestamp}_Kali-Pi5-1TB-Working.img" check_command() { - command -v "$1" >/dev/null 2>&1 || { - # outputz it as errror - echo >&2 "Required command '$1' not found. Install it and retry." | tee -a "$log" + if ! command -v "$1" >/dev/null 2>&1; then + # output as error to stderr, and append to log only if defined + echo "Required command '$1' not found. Install it and retry." >&2 + if [ -n "${log:-}" ]; then + echo "Required command '$1' not found. Install it and retry." >>"$log" + fi exit 1 - } + fi } # check da needed cmds~ -for cmd in webhook xz pishrink sha256 sudo lsblk dd; do +for cmd in webhook xz pishrink sha256sum sudo lsblk dd; do check_command "$cmd" done # trap function cleanup cleanup () { - webhook "$0 errored! Cleaning up! seconds: $SECONDS line: $LINENO command: $BASHCOMMAND" true + webhook "$0 errored! Cleaning up! seconds: $SECONDS line: $LINENO command: $BASH_COMMAND" true # supress errors if they not there # to save me from testing each one or writing a fun :poe: for file in "$img_name" "$img_name.sha256" "$img_name.xz" "$img_name.xz.sha256" "$log"; do @@ -52,32 +55,38 @@ echo -e "\n\n\nSTARTING DUMP OPS\n\n\n" # get disk lsblk read -p "Enter Disk Name (ex. sda, sdb no /dev or anything else) " disk_choice +if [ -z "${disk_choice:-}" ]; then + echo "ERROR: No disk entered." >&2 + exit 1 +fi disk="/dev/$disk_choice" if [ ! -e "$disk" ]; then - echo "ERROR! /dev/$disk is not a device device!" + echo "ERROR: $disk is not a device." >&2 exit 1 fi read -p "For Raspberry Pi? y\n default y" picheck +# set default to 'y' when empty +picheck=${picheck:-y} # for when ask for tag read -p "Input File Tag" filetag # sanity check it -if [ -z "$filetag" ]; - echo "ERROR! File Tag is Emprty!" +if [ -z "$filetag" ]; then + echo "ERROR! File Tag is Empty!" >&2 exit 1 fi log="${timestamp}_${filetag}.log" echo > "$log" # initialize to empty -img_name="${timestamp_${filetag}.img" +img_name="${timestamp}_${filetag}.img" clear # logging optinos to log file -echo "Selections! filetag: $filetag disk: $disk picheck: $picheck log: $log img_name: $img_name (Script Has Run $SECONDS Seconds Date $(date))" | tee -a "$log" +webhook "Selections! filetag: $filetag disk: $disk picheck: $picheck log: $log img_name: $img_name (Script Has Run $SECONDS Seconds Date $(date))" | tee -a "$log" webhook "runnan raw dd img on $disk at to $img_name using 4M bs size (Script Has Run $SECONDS Seconds Date $(date))" -sudo dd if="$disk" of="$img_name" status=progress bs=4M | tee -a "$log" +sudo dd if="$disk" of="$img_name" status=progress bs=4M 2>&1 | tee -a "$log" webhook "Changing perms abd ownership on $img_name (Script has run $SECONDS seconds date $(date))" sudo chown princesspi:princesspi "$img_name" @@ -99,7 +108,7 @@ else ## -n disable update check ## disavble upgrade check webhook "Doing pi compress using pishrink from $img_name ($disk) to $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))" - pishrink -v -r -Z -a -n "$img_name" | tee -a "$log" + sudo pishrink -v -r -Z -a -n "$img_name" | tee -a "$log" fi # fuck yourself @@ -107,8 +116,11 @@ fi # xz -t -v "$img_name.xz" | tee -a "$log" # webhook "xz integrity response code: $?" -webhook "Generating sha256 checksums of $img_name.xz to $img_name.xz.sha256 # webhook "testing xz integrity: $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))" -sha256sum "$img_name.xz" | tee -a "$img_name.xz.sha256" +msg="Generating sha256 checksums of $img_name.xz to $img_name.xz.sha256" +webhook "$msg" +echo "$msg" >>"$log" +webhook "testing xz integrity: $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))" +sha256sum "$img_name.xz" > "$img_name.xz.sha256" # do not fuckin deletee this shit till it works right # if [ -f "$img_name" ]; then