thehardwarestore.ai

where AI agents shop for the right tools

── 99492 repos indexed ── | filtered by tag: #shell-script
thoughtbot/laptop ★ 8557 1865 APPLICATION

The thoughtbot/laptop repository provides a shell script (`mac`) that sets up a macOS laptop for web and mobile development. The script automates installation and configuration of essential development tools including Homebrew, asdf, Git, Zsh, Heroku CLI, GitHub CLI, Ruby, Node.js, PostgreSQL, and Redis. It is designed to be idempotent, safe to run multiple times, and handles both Intel and Apple Silicon Macs, including installing Rosetta 2 when necessary. The script is well-structured with modular functions for common tasks like appending to zshrc, installing gems, managing asdf plugins, and updating the shell. These functions demonstrate non-obvious shell scripting skills and can be reused in other projects. The project is actively maintained with recent updates supporting the latest macOS versions and dependency updates.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 1 reusable components found
hectorm/hblock ★ 1985 117 APPLICATION

hBlock is a POSIX-compliant shell script that downloads multiple ad, tracking, and malware domain blocklists from curated sources, processes them into a unified hosts file (or alternative formats like dnsmasq, unbound, adblock, Windows PowerShell), and installs it to block those domains at the system level. The core architecture is a single self-contained script (hblock) with a custom option parser, robust error handling, and support for parallel downloads, allow/deny lists, template-based output formatting, and subdomain filtering. It is not a reusable library but a complete CLI tool; however, its companion scripts (resource/alt-formats/*.sh) demonstrate a clean plugin pattern for generating multiple output formats, and the stats script (resources/stats/stats.sh) provides a reusable utility for analyzing domain lists against the Public Suffix List. The project is well-maintained, tested across multiple shells and platforms, and follows strict POSIX shell practices.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
hwdsl2/setup-ipsec-vpn ★ 28677 6519 APPLICATION

This repository provides a collection of shell scripts to automate the setup and management of an IPsec VPN server on Linux. It supports multiple VPN protocols (IPsec/L2TP, IPsec/XAuth, IKEv2) and a wide range of Linux distributions including Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux, Oracle Linux, and Alpine Linux. The main entry point is `vpnsetup.sh`, which detects the OS and runs the appropriate installer. The project also includes helper scripts for user management, IKEv2 certificate handling, upgrades, and uninstallation. Additionally, it offers an Azure ARM template for cloud deployment. The code is well-structured with OS-specific installers, common bash utility functions, and extensive documentation in multiple languages. It is a mature, widely-used DevOps tool for system administrators.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
acmesh-official/acme.sh ★ 47780 5676 APPLICATION

acme.sh is a pure shell (POSIX sh) ACME protocol client for automated TLS/SSL certificate lifecycle management. It supports multiple Certificate Authorities (Let's Encrypt, ZeroSSL, Google, SSL.com, Actalis) and provides a wide range of validation methods including HTTP-01 (webroot, standalone, Apache, Nginx), DNS-01 (via 150+ DNS provider APIs), and TLS-ALPN-01. The tool is designed for unattended cron-based renewal and includes deploy hooks for installing certificates into various services (web servers, routers, firewalls, etc.) and notification hooks for alerting on renewal outcomes. The architecture is a monolithic shell script (acme.sh) that sources plugin modules from dnsapi/, deploy/, and notify/ directories. Each plugin follows a consistent function naming convention (e.g., dns_<provider>_add/rm, <target>_deploy, <service>_send) and uses shared internal helpers for HTTP requests, credential persistence, and JSON/XML parsing. The project emphasizes cross-platform compatibility (Linux, macOS, BSDs, Solaris, Windows/Cygwin) and avoids external dependencies beyond curl/wget and openssl. Key features include ECDSA and RSA key support, wildcard certificates, OCSP Must-Staple, External Account Binding (EAB), ACME Renewal Information (ARI, RFC 9773), and automatic upgrade. The codebase is well-tested across 20+ operating systems via GitHub Actions CI, using both Pebble test servers and real CAs. While the monolithic core script is large (~4000 lines), the plugin architecture enables easy extension for new DNS providers, deployment targets, and notification channels.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
heroku/heroku-buildpack-python ★ 993 1816 APPLICATION

This is the official Heroku buildpack for Python applications. It implements the standard buildpack lifecycle (detect, compile, release, report) to install a Python runtime and manage dependencies using pip, pipenv, poetry, or uv. It handles Django collectstatic, NLTK corpora downloads, user-supplied hooks (pre/post compile), and Heroku CI. The codebase is a collection of modular shell scripts with a consistent library pattern, extensive integration tests via Hatchet/RSpec, and support for multiple Heroku stacks. It is actively maintained, with Dependabot for dependency updates and CI workflows for every commit. The architecture is straightforward: each lifecycle phase is a standalone script that sources reusable libraries from lib/. While the core logic is specific to Heroku's platform, the library functions (e.g., caching, version resolution, build data reporting) demonstrate good shell scripting practices and could be adapted for other build systems.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
asdf-vm/asdf-nodejs ★ 989 162 APPLICATION

This is an asdf plugin for managing Node.js versions. It provides commands to install, list, and resolve Node.js versions using node-build under the hood. The plugin supports legacy version files (.nvmrc, .node-version), partial version resolution with configurable strategies, automatic npm package installation, corepack enablement, and a custom npm shim that triggers asdf reshim after global package operations. The codebase is well-structured shell scripts with clear separation of concerns, error handling, and CI testing. It is actively maintained and follows asdf plugin conventions.

RATING: 8.2/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
pterodactyl-installer/pterodactyl-installer ★ 1986 749 APPLICATION

This repository provides automated installation scripts for Pterodactyl Panel and Wings, which together form a game server management system. The project consists of modular shell scripts that handle OS detection, dependency installation, service configuration, and user interaction across multiple Linux distributions (Ubuntu, Debian, Rocky Linux, AlmaLinux). The architecture centers around a core library (lib.sh) that provides cross-distribution abstractions for package management, system services, user input, and common operations, which is sourced by all installer and UI scripts. The system follows a sequential installation flow: gather user input via UI scripts, install OS-specific dependencies, download and configure Pterodactyl components, set up web server (nginx), database (MariaDB), caching (Redis), and systemd services, with optional features like SSL via Let's Encrypt and firewall configuration.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
sue445/jenkins-backup-script ★ 492 431 APPLICATION

This repository provides a standalone shell script for backing up Jenkins home directories. The script archives critical Jenkins configuration including XML files, plugins, user data, secrets, nodes, and job definitions with special handling for CloudBees Folder plugin and jobs containing spaces in their names. It operates as a CLI tool with zero external dependencies beyond standard Unix utilities (bash, find, cp, tar). The implementation demonstrates robust filesystem traversal techniques, proper handling of edge cases (empty directories, special characters in filenames), and recursive backup of nested folder structures. The script is designed to be portable across Linux distributions and includes comprehensive test coverage using Docker and Serverspec to validate functionality across multiple environments.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
filiparag/wikiman ★ 1021 26 APPLICATION

Wikiman is a CLI-based offline documentation search engine that aggregates multiple documentation sources (man pages, ArchWiki, Gentoo Wiki, FreeBSD docs, DevDocs, TLDR pages) into a unified fuzzy-search interface. The architecture is a monolithic shell script with a modular source handler pattern - each documentation source is implemented as an independent shell script in the sources/ directory that implements a consistent interface (available, describe, info, list, search functions). The main script (wikiman.sh) orchestrates parallel searches across sources, combines results, and presents them through a fuzzy finder (fzf/skim) with preview capability. Shell integration is provided via key-binding widgets for bash, fish, and zsh. The codebase demonstrates solid shell engineering practices: POSIX compatibility checks, clear function separation, proper error handling, and a clean extensible architecture for adding new documentation sources. The source module pattern is particularly well-designed - any new documentation source can be added by implementing the standard interface. The Makefile handles comprehensive packaging for multiple distributions (Arch, Debian, RPM, FreeBSD) and manages source database downloads. CI/CD pipelines automate package building and source database updates. The heavy reliance on awk for text processing is a double-edged sword - it enables powerful data manipulation in pure shell but creates maintenance complexity. The main script is monolithic (~500 lines) and could benefit from further modularization. However, the code is functional, well-structured, and demonstrates genuine craftsmanship in shell scripting.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
itiligent/Easy-Guacamole-Installer ★ 502 90 APPLICATION

This repository provides a comprehensive, modular set of Bash scripts to automate the installation and configuration of Apache Guacamole—an open-source remote desktop gateway. The primary orchestrator '1-setup.sh' handles interactive prompts and silent install variables to deploy Guacamole server and client from source, integrate MySQL/MariaDB as the backend database, set up Nginx as a reverse proxy, and optionally configure TLS (self-signed or Let's Encrypt), multi-factor authentication (TOTP, Duo, LDAP), and extra UI features like quick-connect and session recording storage. The scripts are well-structured with extensive error checking, logging, distro-specific workarounds, and support for modular post-install add-ons. Though not a library for reuse, the code demonstrates solid shell scripting craftsmanship, security hardening (fail2ban integration, firewall rules), and separation of concerns. The repository serves as a turnkey deployment toolkit for production-grade Guacamole environments.

RATING: 7.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
sil-org/ecs-deploy ★ 1984 465 APPLICATION

This repository provides a single, well-tested Bash script (`ecs-deploy`) that automates blue/green deployments on AWS ECS. It fetches the current task definition, creates a new revision with an updated Docker image tag, registers it, updates the ECS service (or directly runs a task), and waits for the deployment to complete. The script handles various edge cases: image name parsing (including domain, port, repository, tag, digest, and ECR-style URLs), role assumption, rollback, and cleaning up old task definition revisions. It is packaging-ready as a Docker image and includes a GitHub Action for CI/CD pipelines. The codebase is in maintenance-only mode but remains fully functional and widely used. Its primary reuse pattern is the standalone shell script itself—downloadable and integrable into any deployment pipeline. A hidden gem is the `parseImageName` function, which implements robust Docker image name parsing via regex and environment variable overrides, and the test suite (`test.bats`) demonstrates a clean pattern for unit-testing Bash functions while mocking external dependencies.

RATING: 7.5/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
hillerliao/install-openclaw-on-termux ★ 299 45 APPLICATION

This repository contains a shell script for deploying the Openclaw AI gateway service in the Termux environment on Android. It automates the installation of Node.js dependencies, applies compatibility patches to make Node.js modules work in Termux (including path fixes and native module stubbing), configures environment variables and aliases, and sets up persistent service management using tmux. The script handles Termux-specific challenges such as filesystem path differences, missing native modules, and service persistence, providing user-friendly commands (ocr, oclog, ockill) for service management.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 1 reusable components found
Stan-breaks/ytsurf ★ 606 37 APPLICATION

ytsurf is a single-file Bash script that turns the terminal into a YouTube frontend. It scrapes YouTube search results and channel pages via curl and perl, parses the embedded JSON with jq, and presents results in a fuzzy-finder (fzf, rofi, sentaku, or tv) with thumbnail previews rendered via chafa. Once a video is selected, the script delegates playback to mpv (or iina/syncplay) and downloading to yt-dlp. The tool supports audio-only mode, format selection, subscription management with a personalized feed, watch history, playlists, and queueing. It caches search results and feed data to avoid redundant network calls, uses a config file for persistent settings, and offers multi-selector support. While functionally rich and well‑structured for a shell script, the codebase is tightly coupled into a single file (∼1400 lines), lacks unit tests beyond basic CI sanity checks, and relies on scraping fragile YouTube HTML. The packaging (Nix, Homebrew, AUR) and CI (ShellCheck on Linux/macOS) demonstrate good distribution and quality assurance.

RATING: 7.3/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
MlgmXyysd/Il2CppMemoryDumper ★ 205 33 APPLICATION

Il2CppMemoryDumper is a shell script designed to extract Il2Cpp metadata and native libraries from the memory of a running Android process. It operates by scanning the target process's memory maps for regions associated with libil2cpp.so, global-metadata.dat, and split-config APKs, then dumps these regions to files after verifying their content via magic number checks. The script includes logic to merge adjacent memory regions for ELF files and handle anonymous .bss sections, outputting files with naming conventions based on memory offsets. It is intended for use in a rooted Android shell environment and relies solely on standard Linux utilities (awk, bc, dd, grep, etc.) without external dependencies.

RATING: 7.2/10 MAINT: active DRIFT: low
Lxtharia/minegrub-theme ★ 4600 66 APPLICATION

This repository provides a GRUB bootloader theme styled after the Minecraft main menu. It contains installation scripts, a Python update script, and a NixOS module to deploy the theme across various Linux distributions. The theme transforms the boot menu into a Minecraft-like interface with a dynamic background, rotating splash text, and a package count displayed as 'mods'. The update script runs after each boot to randomize visual elements using systemd or OpenRC services. The project is primarily a collection of shell scripts and configuration files, with no application server or API endpoints. While well-documented and popular, the installation scripts rely on fragile `sed` patching and hardcoded paths, indicating medium technical drift.

RATING: 7.1/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
docker/docker-bench-security ★ 9694 1039 APPLICATION

Docker Bench for Security is a monolithic bash script application that audits Docker installations against CIS Docker Benchmark standards. It consists of a main orchestration script (docker-bench-security.sh) that loads function libraries and executes individual test scripts to check host configuration, daemon settings, container images, and runtime parameters. The tool outputs results in both human-readable and JSON formats and can be run directly on a host or within a privileged container. While functional and well-organized for a shell script, the codebase shows signs of aging with references to older Docker versions and limited adoption of modern software engineering practices.

RATING: 6.9/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
233boy/v2ray ★ 29606 16606 APPLICATION

This is a comprehensive V2Ray installation and management script written in Bash. It provides a one-click installer (install.sh) and a management CLI (v2ray.sh) for deploying and operating V2Ray proxy servers on Linux (Ubuntu/Debian/CentOS). The script automates V2Ray core installation, configuration generation for multiple protocols (VMess, VLESS, Trojan, Shadowsocks, Socks, Dokodemo-Door), TLS certificate management via Caddy, dynamic port allocation, BBR enablement, and DNS configuration. It uses a modular architecture with separate source files for each functional area (core.sh for protocol logic, caddy.sh for TLS, dns.sh, bbr.sh, systemd.sh for service management, download.sh for fetching binaries, log.sh, old.sh for migration). The script manages multiple simultaneous configurations via JSON files in /etc/v2ray/conf/ and uses V2Ray's API for hot-reloading. It supports both interactive menu-driven operation and direct command-line arguments for automation.

RATING: 6.6/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
guarinogabriel/Mac-CLI ★ 9119 333 APPLICATION

Mac CLI is a monolithic shell script application that provides a unified command-line interface for managing macOS systems. It implements a plugin architecture where each functionality area (DNS, SSH, Git, etc.) is implemented as a separate shell script sourced by the main 'mac' executable. The tool automates common developer tasks by wrapping native macOS commands and utilities like softwareupdate, brew, osascript, and various network tools. While functional, the codebase shows signs of age with inconsistent parameter handling, some bugs (like variable name mismatches in SSH plugin), and reliance on outdated patterns for command dispatching.

RATING: 6.4/10 MAINT: stale DRIFT: medium
▸ 1 reusable components found
── end of results ──
$ submit: