Front / Back (click to flip)
Click card to view front/back
Raw Script
#!/usr/bin/env bash
set -euo pipefail;bash -c $'R=$\'\\033[0m\';G=$\'\\033[38;5;46m\';Y=$\'\\033[38;5;226m\';C=$\'\\033[38;5;51m\';E=$\'\\033[38;5;196m\';W=$\'\\033[38;5;255m\'\nS="${S:-0x5f0000}"\nT="${T:-0x5fffff}"\nF="${F:-hex}"\nP="${P:-0}"\nO="${O:-}"\nneed(){ command -v "$1" >/dev/null 2>&1; }\nclr(){ tput cnorm 2>/dev/null; clear; }\npause(){ read -r -p "Enter to continue... " _; }\nh2d(){ printf "%d\\n" "$((16#${1#0x}))"; }\nd2h(){ printf "0x%06x\\n" "$1"; }\nfmt(){\n local n="$1"\n case "$F" in\n hex) d2h "$n";;\n dec) printf "%d\\n" "$n";;\n bytes) printf "%02x %02x %02x\\n" $(((n>>16)&255)) $(((n>>8)&255)) $((n&255));;\n *) d2h "$n";;\n esac\n}\ngen(){\n local a b n cnt\n a="$(h2d "$S")" || return 1\n b="$(h2d "$T")" || return 1\n (( b < a )) && printf "%b\\n" "${E}End < Start${R}" && return 1\n cnt=$((b-a+1))\n clr\n printf "%b\\n" "${C}OID Generator${R}"\n printf "%b\\n" "${W}Start:${Y} $S${R} ${W}End:${Y} $T${R} ${W}Count:${Y} $cnt${R} ${W}Format:${Y} $F${R}"\n [[ -n "${O:-}" ]] && printf "%b\\n" "${W}Output:${Y} $O${R}"\n echo\n if [[ "$P" -eq 1 ]]; then\n local show=40 i=0\n printf "%b\\n" "${G}Preview (first $show)${R}"\n for ((n=a; n<=b && i<show; n++, i++)); do fmt "$n"; done\n if (( cnt > show )); then printf "%b\\n" "${Y}... (${cnt-show} more)${R}"; fi\n return 0\n fi\n if [[ -n "${O:-}" ]]; then : > "$O" || { printf "%b\\n" "${E}Cannot write: $O${R}"; return 1; }; fi\n for ((n=a; n<=b; n++)); do\n if [[ -n "${O:-}" ]]; then fmt "$n" >> "$O"; else fmt "$n"; fi\n done\n [[ -n "${O:-}" ]] && printf "%b\\n" "\\n${G}Saved:${R} ${W}$O${R}"\n}\nset_range(){\n clr\n read -r -p "Start hex (e.g. 0x5f0000): " x\n read -r -p "End hex (e.g. 0x5fffff): " y\n [[ -n "${x:-}" ]] && S="$x"\n [[ -n "${y:-}" ]] && T="$y"\n}\nset_format(){\n clr\n echo "1) hex (0x5f0000)"\n echo "2) dec (6225920)"\n echo "3) bytes (5f 00 00)"\n read -r -p "> " k\n case "$k" in\n 1) F=hex;;\n 2) F=dec;;\n 3) F=bytes;;\n esac\n}\nset_out(){\n clr\n read -r -p "Output file path (blank = print to screen): " x\n O="$x"\n}\ntoggle_preview(){ [[ "$P" -eq 1 ]] && P=0 || P=1; }\nwhile true; do\n clr\n echo -e "${C}PIV OID RANGE MENU${R}"\n echo -e "${W}Start:${Y} $S${R}"\n echo -e "${W}End :${Y} $T${R}"\n echo -e "${W}Fmt :${Y} $F${R}"\n echo -e "${W}Mode :${Y} $([[ "$P" -eq 1 ]] && echo PREVIEW || echo FULL)${R}"\n echo -e "${W}Out :${Y} ${O:-<stdout>}${R}"\n echo\n echo "1) Set range"\n echo "2) Set format"\n echo "3) Toggle preview/full"\n echo "4) Set output file"\n echo "5) Run"\n echo "q) Quit"\n echo\n read -r -p "> " a\n case "$a" in\n 1) set_range; pause;;\n 2) set_format; pause;;\n 3) toggle_preview; pause;;\n 4) set_out; pause;;\n 5) gen; pause;;\n q|Q) clr; exit 0;;\n *) echo -e "${E}Invalid${R}"; pause;;\n esac\ndone\n'
QR Payload
bash -c "$(echo H4sIAAAAAAAAA41WbW/aSBD+fr9iznET+3IEm4SoxTHSKQdRpLbQkDaKQlUtsAQrZk3MOiEi/u83s2uDbah0fABm5tl522fGPviznizj+igQdS5eYMSWsz+WXEKNJxEsggWfsiD0SA21MZhHN745PBoOndPTB2c+PPKutvLpR6/pnZ2T9r6ibTSU+rKibrqk7VS07icFvqv6aDZRPRQD3zDXg1bNWTWnDn5SYyhuSXerdfQhXZd03VZtxlck9knsI4SEHgm9Vo3+C84nlr2GcTSfMzGB2gsYpmtAuz7hL3WRhCE02oeuB+lQjMOYoHKRSBiLKJ6jaQPzYBxyFivggiVLTtCYM3QZQ20BRkdIHoOMMJSQgUj4yckJGPBLnZg1VBaLOBByCsaHyXAoDMzEstzzA3PtHjir1LYNhZ00ZkWss/rgnK8yvKsh07lEyFAAhNGYhSB8MpE8ZkuOuK4BgSAZADtkA/pErTA8TysnfGzvZrO1j94kXxYQTmMFmy+FxtQt0W675/Yh3p1t54qPBVnov7nTv6p58CUbDwXW88hFqR4GIxB4B5JUDIuzsIF4cGDYBry/Y99lEgtwyTzamm/3mC0LfV2gR0zp8HBb0Sired1JO8iLCxhIFktzfZMahCu6wDx8rGZUY8eubStNGNPPrrPLtHf9L1xxwWMmo1i524+8S1XAlrm+T8EcEBJbRHpMJ9PeFrSXUSJyNCZUsHSRqSw3dTchHx6gJiCfBPj5c3/5d2kvIcZn53ub83w8i+g3mJIrw+wbuDaewUVPHsgZz+ilL2w5i179MwcC39Hq3UBXaT/mLwF/BWsaxEsJJh2yN/EAplGM1yV85oG48EeUb3BBIJSPj/+G4PgYyQSTCJD/mkYoCK5PY55419gaaKt0gLCU555c7lMaTstcI7xG4BTmUcx1Mh5MA+0yI4EqSet0M8p9zaK0MK5h9hQB13t5dsmEiCS8xoHkrbzV3oZqONl56EonVP269E2tv0sjbw20dToe8BBXwrZjOkLet//FEvym+xuwF07UROYRbzZcwQHGh8qvmOEcZ2OcDUhxPyq60zYCi588nkC+4e0WbslVFU0zCRU0fRT6rZT5qpA5PT5WZfq/Fcz0JHnbZjxVk1NOmWgPhmvr2Jskja2tYdP6BOu80Wh+apRMp7benGA1p+A4kB8sVobXAk+FVf20XdUYtetj3HxhNkjGWLl8SrIKUNmfVEyUyN83X8843n3IYcHkDKxRyMQT+Pqu6bG1HMeci+1t9LJWonsZPT6G/NdCzy89nKobgZrb9x3ift/XT9PXGQWTccJz3hY7XON6XfavfwCtzJt/vl514Evn6/fSAspwe5blLkRRprg5dyFdnALY2ZQlyJdownOIta9Mhe7fdH5cd+6oXiV3v3/+bO93iK3fxKQpu1jKCd5VO93ZtBvqDfAVTU1TmXWk1pQtU+5WXQ9k11Of4ttKAXCmD0ZbBhSMTRtuElFQPNvwLQlkKa8qe1mBvazE3s0a8EC9IxWIvJ23ig0LKPOrYj/TZzH/igFzx/eGivL5/ZtNRMO1twokOIV3j8KtdNJr8cLCYJKt4IILPVN6PR79B8Op5zhACwAA | base64 -d | gunzip)"