{"id":17919840,"url":"https://github.com/dwisiswant0/shloop","last_synced_at":"2025-07-05T12:33:59.410Z","repository":{"id":57555141,"uuid":"310595259","full_name":"dwisiswant0/shloop","owner":"dwisiswant0","description":"Want to execute command repeatedly without workache? Here is shloop born for it!","archived":false,"fork":false,"pushed_at":"2022-03-02T15:47:55.000Z","size":3,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T12:51:05.999Z","etag":null,"topics":["cli","go","go-tools","golang"],"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/dwisiswant0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["dwisiswant0"],"custom":["https://paypal.me/dw1s","https://saweria.co/dwisiswant0","https://unstoppabledomains.com/d/dwisiswant0.crypto"]}},"created_at":"2020-11-06T12:45:51.000Z","updated_at":"2023-12-04T18:11:49.000Z","dependencies_parsed_at":"2022-09-26T18:51:37.628Z","dependency_job_id":null,"html_url":"https://github.com/dwisiswant0/shloop","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwisiswant0%2Fshloop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwisiswant0%2Fshloop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwisiswant0%2Fshloop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwisiswant0%2Fshloop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dwisiswant0","download_url":"https://codeload.github.com/dwisiswant0/shloop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221925926,"owners_count":16902784,"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":["cli","go","go-tools","golang"],"created_at":"2024-10-28T20:19:31.110Z","updated_at":"2024-10-28T20:19:31.816Z","avatar_url":"https://github.com/dwisiswant0.png","language":"Go","funding_links":["https://github.com/sponsors/dwisiswant0","https://paypal.me/dw1s","https://saweria.co/dwisiswant0","https://unstoppabledomains.com/d/dwisiswant0.crypto"],"categories":[],"sub_categories":[],"readme":"# shLoop\n\nWant to execute command repeatedly without _workache_? Here is **shloop** born for it!\n\n## Install\n\nThe installation is easy!\n\n- You can download a prebuilt binary from [releases page](https://github.com/dwisiswant0/shloop/releases), unpack and run! or\n- If you have Go compiler installed and configured:\n\n```bash\n\u003e go get github.com/dwisiswant0/shloop/...\n```\n\n## Configuration\n\n`shLoop` just reads environment values to run.\n\n- `SHLOOP_COUNT` is the number of times the command is repeated _(default: 5)_,\n- `SHLOOP_THREAD` to specify the number of executed command concurrently _(default: 1)_, and\n- `SHLOOP_VERBOSE` to display information on what command is being executed _(default: false)_.\n\n## Usage\n\nSimply, `shloop` can be run with:\n\n```bash\n▶ shloop [command...]\n```\n\n### Variables\n\nWe also support variables, meanwhile we have variables as:\n\n- `i` will generate digit incrementally _(depending on_ `SHLOOP_COUNT` _value)_,\n- `str` will generate a random ASCII string with length _N_,\n- `int` will generate a random string of length _N_ consists of ASCII digits _(note it can start with 0)_, and\n- `uuid` _(version 4)_ will generate a random unique identifier based upon random nunbers.\n\t- Format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`.\n\n## Workarounds\n\nAs an example, I want to repeat the `echo` command 10 times.\n\n```bash\n▶ export SHLOOP_COUNT=10\n▶ shloop echo \"Hello, world!\"\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\n```\n\nIn case if you want to test race conditions on an endpoint with `curl`.\n\n```bash\n▶ export SHLOOP_COUNT=10\n▶ export SHLOOP_THREAD=5\n▶ shloop curl -X POST https://httpbin.org/post -d \"foo=bar\"\n```\n\n### Using variables\n\nExample of using incremental variable:\n\n```bash\n▶ export SHLOOP_COUNT=5\n▶ shloop echo \"No. {{i}}\"\nNo. 1\nNo. 2\nNo. 3\nNo. 4\nNo. 5\n```\n\n**Have IDOR endpoints? Intruder on it!**\n\n```bash\n▶ export SHLOOP_COUNT=100\n▶ export SHLOOP_VERBOSE=true\n▶ shloop curl -s \"https://domain/api/orders/{{int 8}}\"\n```\n\nAnother one:\n\n```bash\n▶ export SHLOOP_COUNT=100\n▶ export SHLOOP_VERBOSE=true\n▶ shloop curl -s \"https://domain/profile.php?id={{uuid}}\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwisiswant0%2Fshloop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdwisiswant0%2Fshloop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwisiswant0%2Fshloop/lists"}