{"id":18536424,"url":"https://github.com/gingerhot/joker","last_synced_at":"2025-07-10T22:07:35.710Z","repository":{"id":57512415,"uuid":"240207794","full_name":"gingerhot/joker","owner":"gingerhot","description":":clown_face: A commandline tool helps to check your dev environment.","archived":false,"fork":false,"pushed_at":"2020-09-10T08:24:35.000Z","size":20,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-16T19:05:37.378Z","etag":null,"topics":["check-dev-env","commandline-tool","dev-tools"],"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/gingerhot.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":"2020-02-13T08:08:17.000Z","updated_at":"2024-03-31T22:33:08.000Z","dependencies_parsed_at":"2022-09-26T17:51:38.024Z","dependency_job_id":null,"html_url":"https://github.com/gingerhot/joker","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/gingerhot/joker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerhot%2Fjoker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerhot%2Fjoker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerhot%2Fjoker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerhot%2Fjoker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gingerhot","download_url":"https://codeload.github.com/gingerhot/joker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gingerhot%2Fjoker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261331377,"owners_count":23142679,"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":["check-dev-env","commandline-tool","dev-tools"],"created_at":"2024-11-06T19:33:32.025Z","updated_at":"2025-07-10T22:07:35.649Z","avatar_url":"https://github.com/gingerhot.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Joker - Helps to check your dev environment\n\nJoker is a commandline tool used to check your dev environment.\n\nIf you need a lot of tools and services in your dev environment, you might miss some operation before coding and testing. Then you'll spend some time to debug an odd error, finally you figured out that it's just because you forgot starting a service or exporting a PATH. That's aweful!\n\nJoker provides several kinds of checking as:\n\n* **ports** (is open or not?)\n* **env variables** (is matched or not with the given expected value?)\n* **file paths** (exists or not?)\n* **commands** (is available or not?)\n* **command outputs** (does command output match with the given expected value?)\n\n## Compatibility\n\n* macOS and Linux supported, not Windows\n* Bash shell only\n\n## Installation\n\nJust `go get` if you have a Go environment:\n\n```\ngo get github.com/gingerhot/joker\n```\n\nor install a binary from [Releases](https://github.com/gingerhot/joker/releases):\n```\ncurl -sL $(curl -s https://api.github.com/repos/gingerhot/joker/releases/latest | grep \"browser_download_url.*.gz\" | grep $(uname -s | tr '[:upper:]' '[:lower:]') | cut -d '\"' -f 4) | tar xz -C /tmp\nsudo mv /tmp/joker /usr/local/bin/joker\n```\n\n## Usage\n\nYou can check [example.yaml](../master/example.yaml) to get how to config to check your dev env. It's straight forward and easy to play.\n\nWhen you have such a yaml-format config file, then run:\n\n```\njoker example.yaml\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/image-store/github/master/joker.png\" \u003e\n\nif you named your config file as exact `joker.yaml`, just run `joker` and it will work perfectly.\n\nGet more help by `joker -h`.\n\nJoker is handy, enjoy!\n\n## Q\u0026A\n\n1. Why I name it Joker?\n\nNot special but I just watched the movie [Joker](https://www.imdb.com/title/tt7286456/), and it's more fun than to name it as `dev-env-checker`.\n\n2. Why not add a `match` directive to undertake pattern matching as `expected` doing exact match in outputs check?\n\nThis can be achieved by some shell tricks along with the `expected` keyword, for example:\n\n```yaml\noutputs:\n  - name: Check Go version\n    cmd: go version | grep -q 'go1.13.6' \u0026\u0026 echo 'matched'\n    expected: matched\n```\n\nAnd hope this example can enlighten your tremendous creativity.\n\n## Contributing\n\nBug reports and pull requests are welcome. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe software is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgingerhot%2Fjoker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgingerhot%2Fjoker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgingerhot%2Fjoker/lists"}