gg.cmd
[[Changelog]](https://github.com/eirikb/gg/releases) [[Download]](https://github.com/eirikb/gg/releases/latest/download/gg.cmd)
gg.cmd is a cross-platform and cross-architecture command-line interface (CLI) that acts as an executable wrapper for various tools such as Gradle, JDK/JVM, Node.js, and Java. It requires zero external dependencies - works on plain Alpine and Ubuntu containers without curl/wget or updated CA certificates (all networking is built-in). Similar in functionality to gradlew (without need for JDK initially installed).
Install with bash (wget): wget ggcmd.io/gg.cmd && chmod +x gg.cmd
Install with bash (curl): curl -L ggcmd.io gg.cmd && chmod +x gg.cmd
Install with PowerShell: wget ggcmd.io -OutFile gg.cmd
[!NOTE] If installing via PowerShell, you still need to make gg.cmd executable if your project has contributors on Linux or macOS. You can do this with the following git command: ps1 git update-index --chmod=+x
or
Download the latest release
GitHub Action
- uses: eirikb/gg/action@main
- run: gg.cmd gradle buildInstall? The concept involves placing a copy of gg.cmd in the root directory of your project. This is similar to what you would do with gradlew or mvnw, except this method is applicable to multiple tools. As a result, your colleagues would not have to install anything on their host machines.
Features
- Zero dependencies - Works on minimal containers (Alpine, Ubuntu) without curl/wget or CA certificates
- Configuration system - Define version requirements and command aliases via gg.toml files
- Simplify the management of other executables in your project
- Automatically detect and execute the required executable version using project configuration files (such
as package.json for Node.js projects)
- Support for chaining multiple executables (e.g. gradle@6:java@17)
- Cross-platform compatibility (Windows, macOS, and Linux)
- Cross-architecture compatibility (x8664 and ARM)
- Fast and lightweight
By default, installs tools in a global cache directory ($HOME/.cache/gg on Unix, %UserProfile%\.cache\gg on Windows). Use the -l flag to use a local cache (.cache/gg in current directory) instead. Adds every dependency into PATH before executing.