diff --git a/README.md b/README.md index 0dc9da5..5ffc9fa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # Terox +[![Release](https://img.shields.io/github/v/release/weburz/terox?style=flat-square&color=fdd32a&labelColor=2c3c4e)](https://github.com/weburz/terox/releases/latest) +[![License](https://img.shields.io/github/license/weburz/terox?style=flat-square&color=fdd32a&labelColor=2c3c4e)](./LICENSE) +[![Go Version](https://img.shields.io/github/go-mod/go-version/weburz/terox?style=flat-square&logo=go&logoColor=white&color=fdd32a&labelColor=2c3c4e)](./go.mod) +[![QA Checks](https://img.shields.io/github/actions/workflow/status/weburz/terox/qa-checks.yml?branch=main&style=flat-square&label=QA&labelColor=2c3c4e)](https://github.com/weburz/terox/actions/workflows/qa-checks.yml) +[![Go Report Card](https://goreportcard.com/badge/github.com/weburz/terox?style=flat-square)](https://goreportcard.com/report/github.com/weburz/terox) + +![Terox mascot: a Go gopher in a hard hat building wooden scaffolding around template files with {{.variable}} tokens floating in the scene](./assets/goterox.png) + Terox is a small, cross-platform CLI for scaffolding new projects from templates. Point it at a GitHub repository or a local directory, answer a few prompts, and Terox renders a ready-to-edit project into the output folder of diff --git a/assets/goterox.png b/assets/goterox.png new file mode 100644 index 0000000..bbc6db5 Binary files /dev/null and b/assets/goterox.png differ diff --git a/docs/app/components/AppLogo.vue b/docs/app/components/AppLogo.vue index bcdac5d..0e6c75f 100644 --- a/docs/app/components/AppLogo.vue +++ b/docs/app/components/AppLogo.vue @@ -1,17 +1,10 @@ diff --git a/docs/app/plugins/umami.client.ts b/docs/app/plugins/umami.client.ts new file mode 100644 index 0000000..e177d8b --- /dev/null +++ b/docs/app/plugins/umami.client.ts @@ -0,0 +1,15 @@ +export default defineNuxtPlugin(() => { + const { umamiWebsiteId } = useRuntimeConfig().public; + + if (!umamiWebsiteId) return; + + useHead({ + script: [ + { + defer: true, + src: "https://umami.weburz.com/script.js", + "data-website-id": umamiWebsiteId, + }, + ], + }); +}); diff --git a/docs/content/1.getting-started/1.introduction.md b/docs/content/1.getting-started/1.introduction.md index 91ca163..6e101e3 100644 --- a/docs/content/1.getting-started/1.introduction.md +++ b/docs/content/1.getting-started/1.introduction.md @@ -3,6 +3,8 @@ title: Introduction description: What Terox is, what it does, and when to reach for it. --- +![Terox mascot: a Go gopher in a hard hat building wooden scaffolding around template files with {{.variable}} tokens floating in the scene](/goterox.png) + Terox is a small command-line tool for scaffolding new projects from templates. You point it at a template — either a folder on your machine or a public GitHub repository — answer a few prompts, and Terox renders a diff --git a/docs/content/1.getting-started/2.installation.md b/docs/content/1.getting-started/2.installation.md index 51fba5e..312bcbe 100644 --- a/docs/content/1.getting-started/2.installation.md +++ b/docs/content/1.getting-started/2.installation.md @@ -1,14 +1,66 @@ --- title: Installation -description: Install Terox via Go, or by building from source. Prebuilt binaries are on the way. +description: Install Terox with Homebrew, Scoop, a direct binary download, or via Go. --- -Terox is a single static binary. The install path that works today requires a -Go toolchain; prebuilt binaries for every platform are next on the roadmap. +Terox is a single static binary that ships for Linux, macOS, and Windows on +both `amd64` and `arm64`. Pick whichever install method matches your +platform — they all give you the same binary. -## With Go (works today) +## With Homebrew (macOS and Linux) -If you have Go 1.23 or newer installed: +The fastest install on macOS and Linux is through the +[`weburz/tap`](https://github.com/weburz/homebrew-tap) Homebrew tap: + +```bash +brew install weburz/tap/terox +``` + +That installs `terox` into the standard Homebrew prefix and adds it to +your `PATH` automatically. + +## With Scoop (Windows) + +On Windows, install through the +[`weburz/scoop-bucket`](https://github.com/weburz/scoop-bucket) Scoop +bucket: + +```powershell +scoop bucket add weburz https://github.com/weburz/scoop-bucket +scoop install weburz/terox +``` + +If you do not have Scoop yet, follow the one-line install at +[scoop.sh](https://scoop.sh) first. + +## Direct binary download + +Every release attaches a prebuilt archive for each supported platform to +the [GitHub releases page](https://github.com/weburz/terox/releases/latest). +A `checksums.txt` next to the archives lets you verify the download. + +Pick the archive that matches your OS and architecture, for example: + +```bash +# Linux on amd64 +curl -L -o terox.tar.gz \ + https://github.com/weburz/terox/releases/latest/download/terox_0.1.2_linux_amd64.tar.gz +tar -xzf terox.tar.gz +sudo mv terox /usr/local/bin/ +``` + +On Windows the archive is a `.zip` containing `terox.exe`; extract it and +move the executable somewhere on your `PATH`. + +::callout{icon="i-lucide-info"} +Replace `0.1.2` in the URL with the version you want, or use +`/releases/latest/download/` to always grab the newest stable build. +:: + +## With Go (`go install`) + +If you already have Go 1.23 or newer installed, you can install Terox +directly from source: ```bash go install github.com/weburz/terox@latest @@ -33,23 +85,6 @@ echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.zshrc source ~/.zshrc ``` -Verify the install: - -```bash -which terox -terox version -``` - -## Prebuilt binaries - -::callout{icon="i-lucide-info"} -**Not yet shipping.** Prebuilt binaries for Linux, macOS and Windows are the -top item on the distribution roadmap. The plan is GoReleaser-driven releases -that attach platform-specific archives to every tagged version on the -[GitHub releases page](https://github.com/weburz/terox/releases). Until then, -use the Go-based install above or build from source. -:: - ## Building from source Clone the repository and build with the included Taskfile: @@ -66,11 +101,24 @@ example `sudo mv ./bin/terox /usr/local/bin/`) or invoke it directly. If you do not have [Task](https://taskfile.dev) installed, `go build .` produces the same binary without the embedded version metadata. -## Updating +## Verify the install + +Whichever method you used, confirm it worked: + +```bash +which terox +terox version +``` -`go install github.com/weburz/terox@latest` re-runs the install and -overwrites the existing binary in place. +`terox version` should print the version number, commit hash, and build +date for the binary you just installed. + +## Updating -When prebuilt binaries ship, the corresponding update commands (`brew -upgrade weburz/tap/terox`, package-manager-specific equivalents, or -re-downloading the latest release) will be documented here. +| Install method | Update command | +| --------------------- | --------------------------------------------- | +| Homebrew | `brew upgrade weburz/tap/terox` | +| Scoop | `scoop update weburz/terox` | +| Direct download | Re-download the latest archive and replace the binary | +| `go install` | `go install github.com/weburz/terox@latest` | +| Built from source | `git pull && task build` | diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts index 00c94e2..e8a99f1 100644 --- a/docs/nuxt.config.ts +++ b/docs/nuxt.config.ts @@ -39,6 +39,12 @@ export default defineNuxtConfig({ }, }, + runtimeConfig: { + public: { + umamiWebsiteId: "", + }, + }, + compatibilityDate: "2026-05-23", nitro: { @@ -52,4 +58,10 @@ export default defineNuxtConfig({ icon: { provider: "iconify", }, + + app: { + head: { + link: [{ rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }], + }, + }, }); diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg new file mode 100644 index 0000000..1d6970c --- /dev/null +++ b/docs/public/favicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/public/goterox.png b/docs/public/goterox.png new file mode 100644 index 0000000..bbc6db5 Binary files /dev/null and b/docs/public/goterox.png differ