{"id":25384033,"url":"https://github.com/gomatic/extender","last_synced_at":"2025-04-09T14:43:20.299Z","repository":{"id":57512614,"uuid":"88861029","full_name":"gomatic/extender","owner":"gomatic","description":"Go toolchain subcommand extender. ","archived":false,"fork":false,"pushed_at":"2017-05-07T15:01:12.000Z","size":31,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T07:01:56.137Z","etag":null,"topics":["extender","subcommands","toolchain","toolchain-command-extender"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gomatic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-20T12:04:53.000Z","updated_at":"2019-04-15T16:47:38.000Z","dependencies_parsed_at":"2022-09-26T17:51:27.525Z","dependency_job_id":null,"html_url":"https://github.com/gomatic/extender","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gomatic%2Fextender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gomatic%2Fextender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gomatic%2Fextender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gomatic%2Fextender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gomatic","download_url":"https://codeload.github.com/gomatic/extender/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248055275,"owners_count":21040151,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["extender","subcommands","toolchain","toolchain-command-extender"],"created_at":"2025-02-15T08:35:33.294Z","updated_at":"2025-04-09T14:43:20.266Z","avatar_url":"https://github.com/gomatic.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# extender\n\nGo toolchain subcommand extender.\n\n[![reportcard](https://goreportcard.com/badge/github.com/gomatic/extender)](https://goreportcard.com/report/github.com/gomatic/extender)\n[![build](https://travis-ci.org/gomatic/extender.svg?branch=master)](https://travis-ci.org/gomatic/extender)\n[![godoc](https://godoc.org/github.com/gomatic/extender/extension?status.svg)](https://godoc.org/github.com/gomatic/extender/extension)\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)\n\nSee [gomatic/extenders](//github.com/gomatic/extenders) for a list of known extenders.\n\n# for critics\n\nHere's a quick explanation for the shortsighted who just love to criticize\nbefore they take the two seconds needed to grasp the actual purpose of such a tool:\n\n- This isn't about typing `go vend` instead of `govend`.\n- This is about being able to replace or augment native `go` toolchain commands. e.g.\n  - Do you have specific things you need as part of `go build`, e.g. adding common `-X`?\n  Then just install the augmentations and you've changed the behavior of `go build`.\n  - Don't like how `go dep`, `go vet`, `go *` works? Replace it with a different implementation.\n\nIt allows Go developers to continue using the standard toolchain and simple commands but\ngain different/customized functionality ... because, thankfully, we don't all like exactly the same\nthings, so flexibility is useful.\n\nIf you're concerned about complexity and fragmentation ... then i'll challenge you to\ncreate a simple toolchain that does everything everyone needs in every situation.\nWhen someone has done that, I'll delete this repository.\n\n# introduction\n\n`extender` provides a `go` executable to precede `GOROOT/bin/go`.\n\nThis allows you to extend the `go` toolchain or even replace Go's native subcommands.\n\n:warning: Do not use this unless you have a good understanding of the go environment\nand, more generally, configuring your shell's environment.\n\n`extender`'s `go` executable provides the ability to call subcommands through\nthe `go` command. The subcommands are implemented as executables with a recognizable\nprefix (default is `go-` and `go`) instead of natively by `GOROOT/bin/go` (and the\n`GOTOOLDIR` tools). If such an executable doesn't exist, it falls back to\n`GOROOT/bin/go`.\n\nFor example,\n\n    go ex\n\nwill (by default) execute\n\n    go-ex\n\nor, if that doesn't exist, it tries\n\n    goex\n\n\nA consequence: allows pointing the go command to separate versions of `go`.\n\n    GOROOT=/go1.8.1 go build\n    GOROOT=/go1.7.5 go build\n\n# Installation\n\n:warning: Installing this adds a `go` executable to your `GOBIN` or\n`GOPATH[0]/bin` and overrides `GOROOT/bin` in the `PATH`\n\n    go get github.com/gomatic/extender/...\n    eval $(extender)\n\nAdditional, you can specify the prefixes that'll be considered extensions (the default is `go- go`):\n\n    eval $(extender go go-)\n\nwill first look for, e.g., `goex` and if not found, `go-ex`, then try `GOROOT/bin/go ex`.\n\n# Writing extensions\n\nSee examples in [gomatic/go-vbuild](//github.com/gomatic/go-vbuild).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgomatic%2Fextender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgomatic%2Fextender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgomatic%2Fextender/lists"}