Posts

Showing posts from May, 2026

script to folderize bulk media files

 I download lots of bulk media files from my phone as I am snap happy. movs, m4as, pngs These take up too much space. Enter this script ~/scripts/iphone_media_clean_convert_folderize.sh #!/bin/bash find . -type f ! -name "*.sh" | while read -r f; do     dir=$(dirname "$f")     base=$(basename "$f")     clean=$(echo "$base" | tr ' ' '_' | tr -d "'\"()")     if [ "$base" != "$clean" ]; then         mv "$f" "$dir/$clean"         f="$dir/$clean"         base="$clean"     fi     filedate=$(date -r "$f" "+%Y-%m-%d")     mkdir -p "./$filedate"     ext="${f##*.}"     out="./$filedate/${base%.*}"     case "${ext,,}" in         mov|avi|mkv|wmv|flv|webm|3gp|3g2|mts|m2ts|mpg|mpeg|m4v|vob|ogv|ts)             echo "$f"             ffmpeg -y -i "$f" -vcodec lib...

script to explode a pdf into jpgs for individual page editing

 script to explode a pdf into jpgs for individual page editing #!/bin/bash sanitize_filename() {     echo "$1" | sed 's/[^a-zA-Z0-9._-]/_/g' } if [ $# -ne 1 ]; then     echo "Usage: $0 <pdf-file>"     exit 1 fi input_file="$1" if [ ! -f "$input_file" ]; then     echo "Error: file not found: $input_file"     exit 1 fi base_filename=$(basename "$input_file" .pdf) sanitized_filename=$(sanitize_filename "$base_filename") output_dir="exploded_$sanitized_filename" mkdir -p "$output_dir" echo "Input file: $input_file" echo "Output folder: $output_dir" pdftoppm -jpeg "$input_file" "$output_dir/${sanitized_filename}_page" if [ $? -ne 0 ]; then     echo "Error during PDF to JPEG conversion."     exit 1 fi i=1 for img in "$output_dir"/"${sanitized_filename}_page"-*.jpg; do     [ -f "$img" ] || continue     mv "...

make minimal bootable linux disk

 #!/bin/bash TARGET_DISK="/dev/sdb" TARGET_EFI="${TARGET_DISK}1" TARGET_ROOT="${TARGET_DISK}2" MOUNTPOINT="/mnt/newroot" RELEASE="noble" MIRROR="http://archive.ubuntu.com/ubuntu/" echo "WARNING: This will erase ${TARGET_DISK}" echo "Press CTRL+C now if this is wrong." sleep 10 sudo apt-get update sudo apt-get install -y debootstrap gdisk dosfstools e2fsprogs grub-efi-amd64-bin grub-efi-amd64-signed shim-signed linux-image-generic sudo umount "${TARGET_EFI}" 2>/dev/null sudo umount "${TARGET_ROOT}" 2>/dev/null sudo umount "${MOUNTPOINT}/boot/efi" 2>/dev/null sudo umount "${MOUNTPOINT}" 2>/dev/null sudo sgdisk --zap-all "${TARGET_DISK}" sudo sgdisk -n 1:2048:+512M -t 1:ef00 -c 1:"EFI System" "${TARGET_DISK}" sudo sgdisk -n 2:0:0 -t 2:8300 -c 2:"Linux root" "${TARGET_DISK}" sudo partprobe "${TARGET_DISK}...

pdf paginator script

#!/bin/bash if [ -z "$1" ]; then   echo "Usage: $0 filename.pdf [colour]"   exit 1 fi f="$1" colour="$2" if [ -z "$colour" ]; then   colour="red"   echo "No colour supplied; defaulting to red."   echo "Options: red orange green cyan blue brown purple black" fi case "$colour" in   red) rgb="1 0 0" ;;   orange) rgb="1 0.5 0" ;;   green) rgb="0 0.6 0" ;;   cyan) rgb="0 0.8 0.8" ;;   blue) rgb="0 0 1" ;;   brown) rgb="0.55 0.27 0.07" ;;   purple) rgb="0.5 0 0.5" ;;   black) rgb="0 0 0" ;;   *)     echo "Invalid colour: $colour"     echo "Options: red orange green cyan blue brown purple black"     exit 1     ;; esac n=$(pdftk "$f" dump_data | awk '/NumberOfPages/ {print $2}') ps="${f%.pdf}_numbers.ps" stamp="${f%.pdf}_numbers.pdf" out="${f%.pdf}_numbered.pdf...