A collection of administration, development, Git, cloud, and platform utility scripts. Review each script and its dependencies before running it, especially scripts that delete files or modify system configuration.
⚠️ Destructive- Deletes data or makes significant system or remote changes.🚧 WIP- Incomplete, experimental, or known to contain unfinished behavior.🔐 Elevated- Requires root, administrator, or other privileged access.🧪 Example- Demonstration code that needs customization before use.
⚠️git-delete-merged-branches.sh- Opens a list of branches already merged intomainin Neovim, then deletes the selected branches.git-pull-recursive.sh- Recursively finds Git repositories under a directory and fetches and pulls each one.git-remotes-recursive.sh- Recursively lists Git repositories and their fetch remotes.git-status-directories.sh- Recursively reports Git repositories with uncommitted changes.github-latest-release.sh- Gets the latest GitHub release tag for a repository through the GitHub API.github-latest-tag.sh- Finds the highest semantic-version GitHub tag, with optional prefix filtering and token authentication.hub-sync-recursive.sh- Recursively fetches repositories, creates local tracking branches, and synchronizes them with thehubCLI.⚠️tag.sh- Bumps a repository's major, minor, or patch version tag and pushes it.utils.sh- Provides the sharedis_git_repositoryshell helper used by recursive Git scripts.
gitlab-check-image-publish-time.sh- Reports how long ago a GitLab container registry image tag was published.🚧gitlab-clone-group.sh- Clones projects from a GitLab group and attempts to process its subgroups; currently a work in progress.gitlab-clone-projects-recursive.sh- Exports or reads GitLab project metadata and clones projects into their namespace directory structure.gitlab-get-project-id-from-current-repo.sh- Resolves the current repository's GitLab project ID by matching its remote URL.gitlab-list-registry-images.sh- Lists container registry tags for the current GitLab repository and reports each tag's age.python/clone-gitlab-group.py- Recursively clones a GitLab group's projects, project wikis, and subgroups.python/list-gitlab-projects.py- Lists accessible GitLab projects usingpython-gitlaband environment-based credentials.
⚠️🔐clean-storage-safe.sh- Interactively reviews and cleans package caches, build artifacts, logs, temporary files, user caches, and trash.diagnose-disk-space-ubuntu.sh- Performs a read-only Ubuntu disk-usage audit and prints possible cleanup commands.⚠️🔐expand_root_volume.sh- Expands partition 2 and its ext4 root filesystem withgrowpartandresize2fs.find-backup-files.sh- Creates a report of recently modified documents, code, configuration, media, database, archive, and large files.⚠️rm-recursive-.gradle.sh- Recursively deletes every.gradledirectory below the current directory.⚠️rm-recursive-build.sh- Recursively deletes everybuilddirectory below the current directory.⚠️rm-recursive-node_modules.sh- Recursively deletes everynode_modulesdirectory below the current directory.⚠️rm-recursive-postgres-data.sh- Recursively deletes everypostgres-datadirectory below the current directory.🔐storage_diagnose.sh- Collects disk, partition, LVM, inode, large-file, ZFS, and snapshot diagnostics into a log in/tmp.⚠️🔐update-apt.sh- Updates, upgrades, cleans, and removes unused packages on apt-based systems.zfsdash.py- Serves a small web dashboard for ZFS pool status, scrub progress, and resilver progress.
docker-debug-container.sh- Starts a Docker image interactively with/bin/shas its entrypoint and removes the container afterward.docker-list-tags-remote.sh- Lists Docker Hub tags for an image, optionally filtering them by text.⚠️🔐🧪example-deploy.sh- Example installer that clones or updates HeavyScript to its latest tag and creates a command wrapper.⚠️gcp-subnets-enable-flow-logs.sh- Enables VPC Flow Logs on every subnet in the active Google Cloud project.
get-ip-from-domain-names.sh- Reads domain names from a file and prints the IP addresses returned bydig.http-wait.sh- Polls an HTTP host until it becomes reachable.ssh-wait.sh- Retries an SSH connection until the target becomes reachable.
combine-md.sh- Combines Markdown files in the current directory intocombined.md, adding a heading for each source file.🧪generate-pdf-from-tex.ps1- Runspdflatexin a TeX Live Docker container to generate a PDF fromweek_8.tex.🧪is-command-in-path.sh- Demonstrates checking whether a configured command, currentlycargo, exists inPATH.python-run-on-change.sh- Usesfswatchto rerun a Python file whenever it changes.Watch-Command.ps1- Defines a PowerShell function that repeatedly runs a command at a configurable interval.
bash-3-version-check-mac.sh- Prints the version of macOS's system Bash.bash-5-version-check-mac.sh- Prints the version of Bash installed at/usr/local/bin/bash.java_home.sh- Defines macOS shell functions for switchingJAVA_HOMEbetween common JDK versions.macos/ruby/chruby_local.sh- Installschrubyunder the current user's home directory and configures shell startup files.macos/ruby/ruby-install_local.sh- Installsruby-installlocally and uses it to install the latest stable Ruby.⚠️🔐setup-kali.sh- Bootstraps a Kali Linux installation with packages, tools, shell configuration, Ghidra, and security utilities.
🚧Monitor-ADGroupChanges.ps1- Compares current Active Directory group membership with saved CSV state and reports additions and removals; includes work-in-progress code.
file-manager.html- Standalone browser file vault that stores, downloads, and deletes files using IndexedDB.tampermonkey/edx-download-transcripts.js- Tampermonkey userscript that adds an edX button for downloading a video's transcript as text.csv-explorer.html- Browser-based CSV explorer for loading local CSV files, viewing rows, and calculating per-column statistics.json-explorer.html- Browser-based JSON explorer for inspecting JSON with searchable tree and table views.