{"id":15634285,"url":"https://github.com/koron/gtc","last_synced_at":"2025-08-02T06:07:47.819Z","repository":{"id":57481364,"uuid":"93939978","full_name":"koron/gtc","owner":"koron","description":"Go tools catalog","archived":false,"fork":false,"pushed_at":"2020-06-13T06:53:12.000Z","size":47,"stargazers_count":22,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T04:49:58.160Z","etag":null,"topics":["go"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koron.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-06-10T13:12:59.000Z","updated_at":"2020-06-15T14:44:22.000Z","dependencies_parsed_at":"2022-09-26T22:11:36.820Z","dependency_job_id":null,"html_url":"https://github.com/koron/gtc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/koron/gtc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koron%2Fgtc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koron%2Fgtc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koron%2Fgtc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koron%2Fgtc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koron","download_url":"https://codeload.github.com/koron/gtc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koron%2Fgtc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268339933,"owners_count":24234624,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["go"],"created_at":"2024-10-03T10:53:24.228Z","updated_at":"2025-08-02T06:07:47.791Z","avatar_url":"https://github.com/koron.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Tool Catalog\n\n[![GoDoc](https://godoc.org/github.com/koron/gtc?status.svg)](https://godoc.org/github.com/koron/gtc)\n[![Actions/Go](https://github.com/koron/gtc/workflows/Go/badge.svg)](https://github.com/koron/gtc/actions?query=workflow%3AGo)\n[![Go Report Card](https://goreportcard.com/badge/github.com/koron/gtc)](https://goreportcard.com/report/github.com/koron/gtc)\n\nGtc installs and updates well known tools written by golang.\n\n## Install gtc\n\n```console\n$ go get -u github.com/koron/gtc\n```\n\n## Usages\n\n\n```console\n# List tools installed\n$ go list\n\n# List tools not-installed\n$ go list -filter notinstalled\n\n# List tools unknown (for gtc)\n$ go list -filter unknown\n\n# Install a tool\n$ go install jvgrep\n\n# Install multiple tools\n$ go install goimports golint jvgrep\n\n# Update a tool\n$ go update jvgrep\n\n# Update multiple tools\n$ go update goimports golint jvgrep\n\n# Update all tools which has been installed and not touched over 5 days\n$ go update -all\n```\n\n## Customize with your own catalog\n\n\nCreate a new repository `github.com/{YOURNAME}/mygtc` with main.go like this:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/koron/gtc/gtcore\"\n)\n\nfunc main() {\n\terr := gtcore.DefaultCatalog.Merge([]gtcore.Tool{\n\t\t{\n\t\t\tPath: \"github.com/{YOURNAME}/mygtc\",\n\t\t\tDesc: \"My own go tools catalog\",\n\t\t},\n\t\t// FIXME: add your favorite tools at here!\n\t}...).Run(os.Args)\n\tif err != nil {\n\t\tfmt.Println(err.Error())\n\t\tos.Exit(1)\n\t}\n}\n```\n\nAnd push it to github, then install it:\n\n```console\n$ go get -u github.com/{YOURNAME}/mygtc\n```\n\nNow you can run `mygtc` instead of `gtc`.\n\n## Customize with JSON\n\nTo load your own catalog from a file, prepare a JSON file like below.\nAnd set its filename to `GTC_CATALOG_FILE` environment variable.\nIt will be merged with the default catalog.\nBut tools in the default catalog overrides same name tools in your catalog.\n\nIf you consider to manage your own catalog with git,\nyou should manage it in [golang - main.go](#customize-with-your-own-catalog)\ninstead of JSON.\nIt can override the default catalog entirely.\n\n```json\n[\n  {\n    \"path\": \"github.com/foo/foo\",\n    \"desc\": \"your favorite foo\"\n  },\n  {\n    \"path\": \"github.com/foo/bar\",\n    \"desc\": \"your favorite bar\"\n  },\n  ...(other your favorite tools)...\n]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoron%2Fgtc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoron%2Fgtc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoron%2Fgtc/lists"}