diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 70957be..41f72be 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -155,4 +155,56 @@ jobs: with: files: artifacts/* generate_release_notes: true + append_body: true prerelease: ${{ contains(github.ref_name, '-') }} + body: | + ## Installation + + Download the archive for your OS and architecture (and the matching `.sha256` file) from the assets below. The instructions below assume both files are in your current directory. + + ### macOS + + ```bash + # 1. Verify the checksum + shasum -a 256 -c ags-aarch64-apple-darwin.tar.gz.sha256 + + # 2. Extract and install + tar -xzf ags-aarch64-apple-darwin.tar.gz + chmod +x ags + sudo mv ags /usr/local/bin/ + ``` + + If Gatekeeper blocks first launch, allow it from System Settings → Privacy & Security, or run `xattr -d com.apple.quarantine /usr/local/bin/ags`. + + Intel Macs: substitute `x86_64-apple-darwin` for `aarch64-apple-darwin` in the commands above. + + ### Linux + + Replace `` with your platform (e.g. `x86_64-unknown-linux-gnu`, `aarch64-unknown-linux-musl`). + + ```bash + # 1. Verify the checksum + shasum -a 256 -c ags-.tar.gz.sha256 + + # 2. Extract and install + tar -xzf ags-.tar.gz + chmod +x ags + sudo mv ags /usr/local/bin/ + ``` + + ### Windows + + Run the following in PowerShell from the directory containing the downloaded files: + + ```powershell + # 1. Verify the checksum + $Expected = (Get-Content "ags-x86_64-pc-windows-msvc.zip.sha256").Split(" ")[0] + $Actual = (Get-FileHash "ags-x86_64-pc-windows-msvc.zip" -Algorithm SHA256).Hash.ToLower() + if ($Expected -ne $Actual) { throw "Checksum mismatch" } + "Checksum OK" + + # 2. Extract + Expand-Archive ags-x86_64-pc-windows-msvc.zip -DestinationPath . + ``` + + Move `ags.exe` to a directory on your `PATH`. diff --git a/Cargo.lock b/Cargo.lock index c8d466b..e6abe2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,7 +4,7 @@ version = 4 [[package]] name = "accelbyte-ags-cli" -version = "0.1.0-rc1" +version = "0.1.0" dependencies = [ "anstream", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 2f0be8e..18c22b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "accelbyte-ags-cli" -version = "0.1.0-rc1" +version = "0.1.0" edition = "2021" description = "Unified CLI for AccelByte Gaming Services" license = "MIT" diff --git a/README.md b/README.md index aac0c1f..c8f2f80 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,31 @@ # AGS CLI -AGS CLI is a command-line interface for [AccelByte Gaming Services](https://accelbyte.io). It generates commands directly from AccelByte's OpenAPI specs so you can explore and call APIs from the terminal with a consistent command structure. +AGS CLI is a unified command-line interface for AccelByte Gaming Services. Automate workflows across all 24 services. Use it interactively, in scripts, or via AI agents. ![AGS CLI demo](demo/reel.gif) -## Current Status - -AGS CLI ships full coverage of all 24 AccelByte services, with bundled OpenAPI specs and end-to-end runtime support for every command. - -Prebuilt binaries are published on the [GitHub Releases page](https://github.com/AccelByte/accelbyte-ags-cli/releases) for: - -- macOS: `x86_64-apple-darwin`, `aarch64-apple-darwin` -- Linux: `x86_64-unknown-linux-gnu`, `x86_64-unknown-linux-musl`, `aarch64-unknown-linux-gnu`, `aarch64-unknown-linux-musl` -- Windows: `x86_64-pc-windows-msvc` - -There is no package-manager distribution (Homebrew, apt, `cargo install`, etc.) yet. - ## Install -### Download a release - -Pick the archive matching your platform from the [latest release](https://github.com/AccelByte/accelbyte-ags-cli/releases/latest). Each archive ships alongside a `.sha256` checksum file. - -**macOS / Linux** - -```bash -# Replace TARGET with e.g. aarch64-apple-darwin or x86_64-unknown-linux-gnu -TARGET=aarch64-apple-darwin -curl -LO https://github.com/AccelByte/accelbyte-ags-cli/releases/latest/download/ags-${TARGET}.tar.gz -curl -LO https://github.com/AccelByte/accelbyte-ags-cli/releases/latest/download/ags-${TARGET}.tar.gz.sha256 -shasum -a 256 -c ags-${TARGET}.tar.gz.sha256 -tar -xzf ags-${TARGET}.tar.gz -sudo mv ags /usr/local/bin/ -ags --help -``` - -On macOS, if the binary is blocked by Gatekeeper on first launch, allow it from **System Settings → Privacy & Security**, or remove the quarantine attribute: `xattr -d com.apple.quarantine /usr/local/bin/ags`. - -**Windows (PowerShell)** - -```powershell -$Target = "x86_64-pc-windows-msvc" -Invoke-WebRequest -Uri "https://github.com/AccelByte/accelbyte-ags-cli/releases/latest/download/ags-$Target.zip" -OutFile "ags-$Target.zip" -Invoke-WebRequest -Uri "https://github.com/AccelByte/accelbyte-ags-cli/releases/latest/download/ags-$Target.zip.sha256" -OutFile "ags-$Target.zip.sha256" -$Expected = (Get-Content "ags-$Target.zip.sha256").Split(" ")[0] -$Actual = (Get-FileHash "ags-$Target.zip" -Algorithm SHA256).Hash.ToLower() -if ($Expected -ne $Actual) { throw "Checksum mismatch" } -Expand-Archive "ags-$Target.zip" -DestinationPath . -.\ags.exe --help -``` +Download the prebuilt archive for your OS and architecture from the [latest release](https://github.com/AccelByte/accelbyte-ags-cli/releases/latest). The release page includes per-platform install instructions and checksum verification. -Move `ags.exe` to a directory on your `PATH` to use it from anywhere. +Supported targets: macOS (`x86_64`, `aarch64`), Linux (`x86_64` and `aarch64` × `gnu` and `musl`), Windows (`x86_64`). -### Build from source +## Build from source -#### Prerequisites +### Prerequisites - Git - [Rust](https://rustup.rs/) 1.84 or newer - On Linux, system packages required for keyring support may also be needed: `libdbus-1-dev` and `libsecret-1-dev` -#### 1. Clone the repository +### 1. Clone the repository ```bash git clone https://github.com/AccelByte/accelbyte-ags-cli.git cd accelbyte-ags-cli ``` -#### 2. Build the binary +### 2. Build the binary ```bash cargo build --release @@ -78,7 +36,7 @@ This creates the CLI binary in: - macOS and Linux: `target/release/ags` - Windows: `target\release\ags.exe` -#### 3. Run it +### 3. Run it Without installing globally: @@ -92,9 +50,9 @@ On Windows PowerShell: .\target\release\ags.exe --help ``` -#### Optional: add it to your PATH +### Optional: add it to your PATH -##### macOS and Linux +#### macOS and Linux You can copy the binary to a directory already on your `PATH`, such as `/usr/local/bin`: @@ -104,7 +62,7 @@ cp target/release/ags /usr/local/bin/ If you do not want to write to a system directory, add `target/release` to your `PATH` instead. -##### Windows +#### Windows You can: @@ -118,7 +76,7 @@ After that, verify the installation: ags --help ``` -### Shell completions +## Shell completions AGS prints a completion script for `bash`, `zsh`, `fish`, or `powershell`: