{"id":16092291,"url":"https://github.com/alecthomas/shreq","last_synced_at":"2026-03-03T23:01:06.274Z","repository":{"id":57644658,"uuid":"434150131","full_name":"alecthomas/shreq","owner":"alecthomas","description":"This utility verifies all commands used by a shell script against an allow list","archived":false,"fork":false,"pushed_at":"2024-01-01T08:27:34.000Z","size":11,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T13:01:49.817Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/alecthomas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-02T09:02:58.000Z","updated_at":"2024-04-15T05:36:39.000Z","dependencies_parsed_at":"2024-06-20T09:30:22.199Z","dependency_job_id":null,"html_url":"https://github.com/alecthomas/shreq","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/alecthomas/shreq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alecthomas%2Fshreq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alecthomas%2Fshreq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alecthomas%2Fshreq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alecthomas%2Fshreq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alecthomas","download_url":"https://codeload.github.com/alecthomas/shreq/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alecthomas%2Fshreq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30064779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-10-09T16:06:47.248Z","updated_at":"2026-03-03T23:01:06.256Z","avatar_url":"https://github.com/alecthomas.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Find external commands required by shell scripts\n\nWhen writing shell scripts that need to run portably across multiple hosts and\nplatforms, it's useful to know what external commands are required. This utility\ndoes exactly that.\n\n## Example\n\n```\n$ shreq ./testdata/*.sh\ntestdata/001.sh:3:20: unsupported external command: parallel\ntestdata/002.sh:3:1: unsupported external command: parallel\ntestdata/002.sh:5:3: unsupported external command: mc\n$ shreq -c parallel,mc testdata/*\n$\n```\n\n## Usage\n\n```text\nUsage: shreq \u003cscript\u003e ...\n\nThis utility verifies all commands used by a shell script against an allow list:\n\n      . : [ admin alias ar asa at awk basename bash batch bc bg bind break\n      builtin c99 cal case cat cd cflow chgrp chmod chown cksum cmp comm\n      command compgen complete compress continue cp crontab csplit ctags cut\n      cxref date dd declare delta df diff dirname dirs disown du echo ed\n      enable env eval ex exec exit expand export expr false fc fg file find\n      fold fort77 fuser gencat get getconf getopts grep hash head help\n      history iconv id if ipcrm ipcs jobs join kill let lex link ln local\n      locale localedef logger logname logout lp ls m4 mailx make man mesg\n      mkdir mkfifo more mv newgrp nice nl nm nohup od paste patch pathchk\n      pax popd pr printf prs ps pushd pwd qalter qdel qhold qmove qmsg\n      qrerun qrls qselect qsig qstat qsub read readonly renice return rm\n      rmdel rmdir sact sccs sed set sh shift shopt sleep sort source split\n      strings strip stty suspend tabs tail talk tee test time times touch\n      tput tr trap true tsort tty type typeset ulimit umask unalias uname\n      uncompress unexpand unget uniq unlink unset until uucp uudecode\n      uuencode uustat uux val vi wait wc what while who write xargs yacc\n\nArguments:\n  \u003cscript\u003e ...    Shell scripts to validate.\n\nFlags:\n  -h, --help              Show context-sensitive help.\n  -a, --allow=none,...    Enable optional features (none,relative,var-relative).\n  -c, --cmds=CMD,...      Extra commands to allow.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falecthomas%2Fshreq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falecthomas%2Fshreq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falecthomas%2Fshreq/lists"}