E-GetS: Your One-Stop Platform for Life Services in Southeast Asia

Written by

in

eGet simplifies your CLI workflow by automating the process of finding, downloading, extracting, and installing pre-built binaries directly from GitHub Releases.

Instead of opening a browser, parsing release tables, matching your machine’s CPU architecture, extracting tarballs, and manually moving files to your path, eget completes the entire workflow in a single terminal command. It is particularly valuable for developers and sysadmins who frequently use standalone tools written in languages like Go, Rust, or Haskell. 📦 Key Features

Platform Detection: Automatically determines your operating system and CPU architecture (e.g., mapping x86_64 or arm64 into corresponding binary formats).

Archive Extraction: Extracts tarballs (.tar.gz), zip files, and .deb packages in memory, extracting only the executable binary without cluttering your system.

Checksum Verification: Automatically downloads and checks SHA-256 integrity hashes if the repository maintainer provides them.

Configuration Syncing: Supports global and per-repository TOML configurations to manage batch downloads and custom upgrade paths. 🛠️ Quick Installation

You can bootstrap your machine with eget using a quick shell script or existing package managers:

# Direct shell installation curl https://zyedidia.github.io/eget.sh | sh # Alternative package managers brew install eget # macOS/Linux scoop install eget # Windows Use code with caution. 🚀 Common Usage Examples

eget targets repositories using the simple owner/repo naming convention. 1. Basic Binary Fetching

Download the latest version of a tool (e.g., ripgrep) and place it into your current working directory: eget BurntSushi/ripgrep Use code with caution. 2. Installing to a Specific Directory

Directly move the extracted executable into your system’s global binaries folder using the –to flag: eget junegunn/fzf –to /usr/local/bin Use code with caution.

(Tip: You can set the EGET_BIN environment variable in your .bashrc or .zshrc to make a specific directory the default destination). 3. Filtering and Excluding Assets

If a repository contains multiple conflicting binaries, filter them with the –asset flag. Use the ^ symbol to exclude matching patterns:

# Exclude musl builds and explicitly pull the standard binary eget ogham/exa –asset ^musl Use code with caution. 4. Upgrading Existing Tools

Check if a newer version exists on GitHub and update it only if your local file is outdated: eget neovim/neovim –to /usr/local/bin –upgrade-only Use code with caution. ⚙️ Automation via Configuration File

You can streamline a full workspace setup by maintaining an eget.toml file. This is incredibly useful for setting up reproducible devcontainers, CI/CD pipelines, or fresh local machines.

# ~/.config/eget/eget.toml # Global setting target_dir = “/usr/local/bin” upgrade_only = true [repositories] “BurntSushi/ripgrep” = {} “gohugoio/hugo” = { asset = “hugo_extended” } “eza-community/eza” = { asset = “gnu” } Use code with caution.

Once your configurations are set, update your entire CLI toolkit using a single command: eget –download-all Use code with caution.

If you want to integrate this tool into your setup, let me know: What operating system and terminal environment you use?

Whether you need help setting up an automated environment script or configuration? Which GitHub CLI tools you install most frequently?

zyedidia/eget: Easily install prebuilt binaries from GitHub.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *