etc~ scripts and random things |
| git clone https://github.com/djnnvx/etc.git |
| log | files | refs | archive |
cleanup.sh (1687B)
1 #!/bin/bash 2 # cleanup.sh — kill fuzzers and remove artifacts. 3 # Usage: bash cleanup.sh [--keep-corpus] [--keep-builds] [--keep-source] [--crashes-only] 4 5 set -uo pipefail 6 7 SCRIPT_DIR="$(cd "$(dirname "${0}")" && pwd)" 8 cd "${SCRIPT_DIR}" 9 10 SESSION="libusb-fuzz" 11 KEEP_CORPUS=0 KEEP_BUILDS=0 KEEP_SOURCE=0 CRASHES_ONLY=0 12 13 for arg in "$@"; do 14 case "${arg}" in 15 --keep-corpus) KEEP_CORPUS=1 ;; 16 --keep-builds) KEEP_BUILDS=1 ;; 17 --keep-source) KEEP_SOURCE=1 ;; 18 --crashes-only) CRASHES_ONLY=1 ;; 19 *) echo "[!] Unknown option: ${arg}" >&2 ;; 20 esac 21 done 22 23 log() { echo "[*] $*"; } 24 ok() { echo "[+] $*"; } 25 26 tmux kill-session -t "${SESSION}" 2>/dev/null || true 27 28 pkill -u "$(id -un)" -f "afl-fuzz.*libusb" 2>/dev/null || true 29 pkill -u "$(id -un)" -f "fuzz_descriptor" 2>/dev/null || true 30 pkill -u "$(id -un)" -f "fuzz_bos" 2>/dev/null || true 31 pkill -u "$(id -un)" -f "fuzz_iad" 2>/dev/null || true 32 pkill -u "$(id -un)" -f "fuzz_usbfs" 2>/dev/null || true 33 pkill -u "$(id -un)" -f "fuzz_extra" 2>/dev/null || true 34 35 [[ "${CRASHES_ONLY}" -eq 1 ]] && { ok "Processes killed."; exit 0; } 36 37 if [[ "${KEEP_BUILDS}" -eq 0 ]]; then 38 rm -f fuzz_descriptor fuzz_descriptor.cmplog 39 rm -f fuzz_bos fuzz_bos.cmplog 40 rm -f fuzz_iad fuzz_iad.cmplog 41 rm -f fuzz_usbfs fuzz_usbfs.cmplog 42 rm -f fuzz_extra fuzz_extra.cmplog 43 ok "Binaries removed." 44 fi 45 46 if [[ "${KEEP_CORPUS}" -eq 0 ]]; then 47 rm -rf corpus/ output/ 48 ok "Corpus and output removed." 49 fi 50 51 if [[ "${KEEP_SOURCE}" -eq 0 ]]; then 52 rm -rf libusb-src/ AFLplusplus/ afl-build/ 53 ok "Source trees removed." 54 fi 55 56 ok "Done."