Various shell scripts that are useful enough to me to keep in my PATH
Find a file
2024-11-03 12:08:45 -08:00
.gitignore Add .gitignore 2024-10-26 14:00:39 -07:00
aax2mp3 Auto-update: Sun Nov 3 12:08:45 PST 2024 2024-11-03 12:08:45 -08:00
bates Auto-update: Sat Oct 26 13:45:39 PDT 2024 2024-10-26 13:45:39 -07:00
camel Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
cf Auto-update: Tue Jul 30 19:48:25 PDT 2024 2024-07-30 19:48:25 -07:00
checknode Auto-update: Tue Jul 30 19:30:24 PDT 2024 2024-07-30 19:30:24 -07:00
comfy Auto-update: Tue Jul 30 19:30:24 PDT 2024 2024-07-30 19:30:24 -07:00
ddns Auto-update: Tue Jul 30 19:48:25 PDT 2024 2024-07-30 19:48:25 -07:00
delpycache added delpycache for deleting all __pycache__ folders in current folder and its subfolders 2024-06-23 14:06:44 -07:00
emoji_flag Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
get Auto-update: Tue Jul 9 16:15:05 PDT 2024 2024-07-09 16:15:05 -07:00
gitpurge Auto-update: Tue Jul 30 20:55:02 PDT 2024 2024-07-30 20:55:02 -07:00
gitscan routine update 2024-08-03 00:22:15 -07:00
import_finder Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
kip Auto-update: Mon Aug 5 19:11:27 PDT 2024 2024-08-05 19:11:27 -07:00
lsd Auto-update: Tue Jul 30 19:30:24 PDT 2024 2024-07-30 19:30:24 -07:00
mamba_exporter Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
mamba_importer Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
murder Auto-update: Tue Jul 30 19:30:24 PDT 2024 2024-07-30 19:30:24 -07:00
nocomment Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
noon first commit 2024-06-23 13:47:43 -07:00
nv first commit 2024-06-23 13:47:43 -07:00
pf Auto-update: Wed Jun 26 10:08:59 PDT 2024 2024-06-26 10:08:59 -07:00
pippin routine update 2024-08-03 00:22:15 -07:00
pull Auto-update: Sat Aug 3 12:14:26 PDT 2024 2024-08-03 12:14:26 -07:00
README.md Update README.md 2024-10-27 01:43:23 +02:00
serv first commit 2024-06-23 13:47:43 -07:00
sij Auto-update: Thu Aug 8 15:55:31 PDT 2024 2024-08-08 15:55:31 -07:00
summarize Auto-update: Tue Jul 30 19:30:24 PDT 2024 2024-07-30 19:30:24 -07:00
tmux_merge Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
txt_line_merge_abc Auto-update: Thu Oct 31 16:43:33 PDT 2024 2024-10-31 16:43:33 -07:00
txtsort Auto-update: Tue Jul 30 19:30:24 PDT 2024 2024-07-30 19:30:24 -07:00
uninstall first commit 2024-06-23 13:47:43 -07:00
up Auto-update: Sat Aug 3 12:14:26 PDT 2024 2024-08-03 12:14:26 -07:00
vitals Auto-update: Mon Sep 23 13:17:54 PDT 2024 2024-09-23 13:17:54 -07:00
vpn Auto-update: Tue Aug 6 14:39:31 PDT 2024 2024-08-06 14:39:31 -07:00
z Auto-update: Wed Oct 30 19:21:37 PDT 2024 2024-10-30 19:21:37 -07:00

PATH-worthy Scripts 🛠️

A collection of various scripts I use frequently enough to justify keeping them in my system PATH.

I haven't written documentation for all of these scripts. I might in time. Find documentation for some of the highlights below.

Installation

  1. Clone and enter repository:
git clone https://sij.ai/sij/pathScripts.git
cd pathScripts
  1. Add to your system PATH:

macOS / ZSH:

echo "export PATH=\"\$PATH:$PWD\"" >> ~/.zshrc
source ~/.zshrc

Linux / Bash:

echo "export PATH=\"\$PATH:$PWD\"" >> ~/.bashrc
source ~/.bashrc
  1. Make scripts executable:
chmod +x *

📄 bates - PDF Bates Number Tool

Extracts and renames PDFs based on Bates numbers.

Setup

pip3 install pdfplumber
# For OCR support:
pip3 install pytesseract pdf2image
brew install tesseract poppler  # macOS
# or
sudo apt-get install tesseract-ocr poppler-utils  # Debian

Usage

bates /path/to/folder --prefix "FWS-" --digits 6 --name-prefix "FWS "

Key Features

  • Extracts Bates numbers from text/scanned PDFs
  • Renames files with number ranges
  • Prepare files for use with my Bates Source Link DEVONthink script
  • Preserves original names in Finder comments
  • OCR support for scanned documents
  • Dry-run mode with --dry-run

Options

  • --prefix: The Bates number prefix to search for (default: "FWS-")
  • --digits: Number of digits after the prefix (default: 6)
  • --ocr: Enable OCR for scanned documents
  • --dry-run: Test extraction without renaming files
  • --name-prefix: Prefix to use when renaming files
  • --log: Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)

Examples

# Test without making changes
bates /path/to/pdfs --prefix "FWS-" --digits 6 --dry-run

# Rename files with OCR support
bates /path/to/pdfs --prefix "FWS-" --digits 6 --name-prefix "FWS " --ocr

Notes

  • Always test with --dry-run first
  • Original filenames are preserved in Finder comments (macOS only)
  • OCR is disabled by default to keep things fast

📦 kip - Intelligent Python Package Installer

A smart package installer that automates Python dependency management, supporting both mamba and pip.

Setup

chmod +x kip

Usage

kip <package1> [<package2> ...]  # Install specific packages
kip <script.py>                  # Install from Python file
kip -r <requirements.txt>        # Install from requirements file

Key Features

  • Smart import detection in Python files
  • Handles package name corrections automatically
  • Uses mamba first, falls back to pip
  • Supports multiple installation methods
  • Filters out built-in modules

Examples

# Install single package
kip requests

# Analyze script and install dependencies
kip analysis.py

# Install from requirements
kip -r requirements.txt

Package Corrections

Automatically corrects common package names:

  • yamlpyyaml
  • dateutilpython-dateutil
  • dotenvpython-dotenv
  • newspapernewspaper3k

Notes

  • Requires Python 3.x
  • Works with mamba or pip
  • Provides clear installation feedback
  • Ignores built-in modules and generic names

🔒 vpn - Tailscale Exit Node Manager

Privacy-focused Tailscale exit node management.

Setup

pip3 install requests

Usage

vpn <action>  # actions: start, stop, new, shh

Actions

  • start: Connect to a suggested exit node if not already connected
  • stop: Disconnect from current exit node
  • new: Switch to a new suggested exit node
  • shh: Connect to a random exit node in a privacy-friendly country

Key Features

  • Auto-connects to suggested nodes
  • Privacy-friendly country selection (SE, CH, DE, FI, NL, NO)
  • Connection verification via Mullvad API
  • Default Tailscale arguments:
    • --exit-node-allow-lan-access
    • --accept-dns
    • --accept-routes

Examples

vpn start  # Connect to suggested node
vpn shh    # Connect via privacy-friendly country

Verification

  • Checks Tailscale's reported exit node
  • Verifies connection using Mullvad's API
  • Confirms hostname matches

Notes

  • Requires active Tailscale configuration
  • Internet connectivity needed for verification
  • Some commands may need admin privileges

More scripts will be documented as they're updated. Most scripts include --help for basic usage information.