• Apr 21, 2021 •LeifMessinger
0 likes • 9 views
#diskRipper.sh by Leif Messinger #For use on debian, where your cds aren't immediately mounted wall "CD inserted boss" set -x #echo on cdDrivePath=$(ls -l /dev/cdrom | awk '{print $NF}') #CD could have no label, so that's why I need awk cdLabel=$(lsblk -n "/dev/$cdDrivePath" -o label) if [[ ! -z "$cdLabel" ]]; then #CD has label folderName=$cdLabel echo "The cd label is ${folderName}" if mkdir ./cds/"${folderName}"; then #Folder didn't exist before sudo mount /dev/cdrom ./.cdmountpoint sudo cp -r ./.cdmountpoint/* "./cds/${folderName}" sudo chmod -R 777 "./cds/${folderName}" sudo umount ./.cdmountpoint eject wall "CD done and ejecting" else wall "Already read that cd, skipped" fi else wall "CD had no label, skipped" fi
• Oct 2, 2026 •LeifMessinger
0 likes • 4 views
#!/usr/bin/env bash #Also pure vibecoded slop. Never tested. Ever. set -euo pipefail if [ $# -lt 1 ]; then echo "Usage: $0 <python_script.py> [--dryrun]" exit 1 fi TARGET="$1" DRYRUN=false if [[ "${2:-}" == "--dryrun" ]]; then DRYRUN=true fi OUTDIR="clean" CWD="$(pwd)" echo "=== Bash Trace Collector ===" echo "Script: $TARGET" echo "CWD: $CWD" echo "DryRun: $DRYRUN" echo # Run trace TRACE_OUTPUT=$(python -m trace --trackcalls "$TARGET" 2>&1) # Extract .py paths (Windows, Unix, mixed) echo "$TRACE_OUTPUT" \ | grep -Eo '([A-Za-z]:[\\/][^*<>"]+\.py)|(/[A-Za-z0-9._/-]+\.py)|(\.[/\\][^*<>"]+\.py)' \ | sort -u \ | while read -r FILE; do # Normalize slashes FILE="${FILE//\\//}" # Skip frozen modules if [[ "$FILE" == "<frozen"* ]]; then continue fi # Only keep files inside the current working directory if [[ "$FILE" == "$CWD"* ]]; then # Compute relative path REL="${FILE#$CWD/}" DEST="$OUTDIR/$REL" DESTDIR="$(dirname "$DEST")" if $DRYRUN; then echo "[WOULD COPY] $FILE --> $DEST" else mkdir -p "$DESTDIR" echo "[COPYING] $FILE" cp "$FILE" "$DEST" fi else echo "[IGNORED: outside CWD] $FILE" fi done echo echo "=== DONE ===" if $DRYRUN; then echo "Dry run complete. No files were copied." else echo "Files copied to '$OUTDIR' with preserved relative paths." fi
• Nov 4, 2023 •LeifMessinger
0 likes • 10 views
#!/bin/bash git status echo "Do you want to add all changed files?" select yn in "Yes" "No"; do case $yn in Yes ) break;; No ) exit 1;; esac done git add -u git status echo "Does this look right?" select yn in "Yes" "No"; do case $yn in Yes ) break;; No ) exit 2;; esac done git commit echo "Do you want to push?" select yn in "Yes" "No"; do case $yn in Yes ) break;; No ) exit 2;; esac done git push
• Nov 19, 2022 •CodeCatch
0 likes • 7 views
name="John" echo ${name} echo ${name/J/j} #=> "john" (substitution) echo ${name:0:2} #=> "Jo" (slicing) echo ${name::2} #=> "Jo" (slicing) echo ${name::-1} #=> "Joh" (slicing) echo ${name:(-1)} #=> "n" (slicing from right) echo ${name:(-2):1} #=> "h" (slicing from right) echo ${food:-Cake} #=> $food or "Cake"
• Oct 15, 2022 •CodeCatch
0 likes • 195 views
awk '\ { for (i=1; i<=NF; i++) { ++D[$i]; } }\ END { for (i in D) { print i, D[i] } }\ ' words.txt | sort -nr -k 2
• Sep 30, 2021 •LeifMessinger
0 likes • 11 views
touch /tmp/login1.txt /tmp/login2.txt while [ true ] do who | gawk '{ print $1 }' > /tmp/login2.txt comm -13 /tmp/login1.txt /tmp/login2.txt #Just a bit easier to read #diff /tmp/login1.txt /tmp/login2.txt cat /tmp/login2.txt > /tmp/login1.txt sleep 1 done