{"id":17383034,"url":"https://github.com/nirokay/shell-utils","last_synced_at":"2025-12-30T21:47:01.507Z","repository":{"id":248086174,"uuid":"827719639","full_name":"nirokay/shell-utils","owner":"nirokay","description":"Collection of scripts used in the shell for convenience.","archived":false,"fork":false,"pushed_at":"2025-03-07T18:54:00.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-27T16:51:12.596Z","etag":null,"topics":["bash","bash-script","bash-scripts","linux","lua","lua-script","shell","shell-scripts","terminal","unix","utilities"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/nirokay.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-12T08:25:28.000Z","updated_at":"2025-03-07T18:54:04.000Z","dependencies_parsed_at":"2024-11-06T14:18:49.428Z","dependency_job_id":"29705422-3cff-45f7-9f03-dcd4efe5dfdd","html_url":"https://github.com/nirokay/shell-utils","commit_stats":null,"previous_names":["nirokay/shell-utils"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nirokay/shell-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fshell-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fshell-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fshell-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fshell-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nirokay","download_url":"https://codeload.github.com/nirokay/shell-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fshell-utils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270065444,"owners_count":24520946,"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-12T02:00:09.011Z","response_time":80,"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":["bash","bash-script","bash-scripts","linux","lua","lua-script","shell","shell-scripts","terminal","unix","utilities"],"created_at":"2024-10-16T07:40:22.513Z","updated_at":"2025-12-30T21:47:01.501Z","avatar_url":"https://github.com/nirokay.png","language":"Shell","readme":"# Shell-Utils\n\n## About\n\nThis is a collection of shell utility programs for your and my convenience!\n\n## Installation\n\nYou can clone this repository and simply add the `scripts` subdirectory to your path!\n\n## Scripts\n\n### clipcopy\n\nBash script, evoking xclip or wl-copy based on your environment, for copying to your clipboard.\n\n#### Examples\n\n```bash\n$ echo \"Hello world!\" | clipcopy\n$ xclip # This example assumes x11 session\nHello world!\n```\n\n### gac\n\nBash script to bulk-commit all changes. Basically an alias to `git add . \u0026\u0026 git commit -m $*`\n\n### glp3gen\n\nLua script to quickly generate and fill out a GPL-3.0 licence in the current directory.\n\n#### Example\n\n```bash\n$ gpl3gen\nProject name: new project\nShort project description: something something\nProject author: me, ofc\n(Current) Year: now\nSuccessfully wrote to file 'LICENSE'.\n```\n\n### newsshkey\n\nBash script to automatically generate SSH keys.\n\n#### Examples\n\n```bash\n$ newsshkey\nEmail (empty by default):\nAlgorithm (and following arguments) (default: 'ed25519'):\nFile location (default: '/home/niro/.ssh/id_ed25519'):\n\nThe following commands will be executed:\n        ssh-keygen -t ed25519\n        eval \"$(ssh-agent -s)\"\n        ssh-add \"/home/niro/.ssh/id_ed25519\"\n\nAre these correct? [y/n]\n...\nEverything complete! :)\n```\n\n```bash\nnewsshkey\nEmail (empty by default):\nAlgorithm (and following arguments) (default: 'ed25519'): rsa -b 4096\nFile location (default: '/home/niro/.ssh/id_rsa'):\n\nThe following commands will be executed:\n        ssh-keygen -t rsa -b 4096\n        eval \"$(ssh-agent -s)\"\n        ssh-add \"/home/niro/.ssh/id_rsa\"\n\nAre these correct? [y/n] y\nContinuing...\n\nGenerating public/private rsa key pair.\nEnter file in which to save the key (/home/niro/.ssh/id_rsa):\nEnter passphrase for \"/home/niro/.ssh/id_rsa\" (empty for no passphrase): ******\nEnter same passphrase again: ******\nYour identification has been saved in /home/niro/.ssh/id_rsa\nYour public key has been saved in /home/niro/.ssh/id_rsa.pub\nThe key fingerprint is:\n...\nEverything complete! :)\n```\n\n### nimdocgen\n\nBash script to automatically generate and deploy docs for projects using the Nim programming\nlanguage.\n\n#### Example\n\n```bash\n$ nimdocgen websitegenerator\nGenerating docs...\n  Verifying dependencies for websitegenerator@2.1.0\n Generating documentation for websitegenerator (from package websitegenerator) using doc backend\n...\nFinished doc generation!\nMoving docs to '/home/niro/Git/nirokay.github.io/nim-docs/'...\nAdd, commit and push changes of directory '/home/niro/Git/nirokay.github.io/nim-docs/websitegenerator' with git? [Y/n] y\n[main 7981721] Updated docs for 'websitegenerator'\n 14 files changed, 14 insertions(+), 14 deletions(-)\n...\nremote: Resolving deltas: 100% (17/17), completed with 17 local objects.\nTo github.com:nirokay/nirokay.github.io\n   f752fad..7981721  main -\u003e main\n/home/niro/Git/websitegenerator\nEverything went well! :)\n```\n\n### python-webserver\n\nBash script to quickly start a python3 webserver.\n\n#### Example\n\n```bash\n$ python-webserver 80 -d .\n[sudo] password for root: ******\nServing HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...\n```\n\n### replace\n\nLua script that forwards `$1` and `$2` to `sed \"s/$1/$2/g\"` (I always forget the `sed` syntax, so\nthis is the reason this exists...)\n\n#### Example\n\n```bash\n$ echo \"this is an entry:more data:hello world\" | replace \" \" \"_\" | replace \":\" \"\\t\"\nthis_is_an_entry        more_data       hello_world\n```\n\n### updateall\n\nBash script that updates all software supporting multiple package managers, determining which\nones are installed at runtime.\n\n\u003e * `-a`,`--async` Performs updates in parallel by opening multiple terminal emulator windows (not all of them may be supported)\n\n#### Example\n\n```bash\n$ updateall\nThe following commands will be executed:\n        sudo zypper up\n        sudo flatpak update -y\n        gitman pull\n\nContinue? [Y/n] y\nContinuing...\n\nExecuting 'sudo zypper up'\n[sudo] password for root: ******\n...\n```\n\n### wtf-is-this\n\nUtility to get information about all the scripts or a single one in this project.\n\nSee [the script](scripts/updateall) for up-to-date documentation on the scripts!\n\n#### Examples\n\n```bash\n$ wtf-is-this\ngac              --\u003e Bash script to bulk-commit all changes.\nnimdocgen        --\u003e Bash script to automatically generate and deploy docs for projects using the Nim programming language.\npython-webserver --\u003e Bash script to quickly start a python3 webserver.\nreplace          --\u003e Lua Script that simplifies the 'sed' syntax for easy character replacement.\nupdateall        --\u003e Bash script to update all packages, supports many package managers.\n    -a,--async       Perform updates in parallel (opens multiple terminal windows, not all are supported)\nwtf-is-this      --\u003e Bash script to inform you about what script does what... THIS is it actually!!\nzipdir           --\u003e Bash script to zip a whole directory. It has the same name with only '.zip' appended.\n```\n\n```bash\n$ wtf-is-this updateall\nupdateall        --\u003e Bash script to update all packages, supports many package managers.\n    -a,--async       Perform updates in parallel (opens multiple terminal windows, not all are supported)\n```\n\n### zipdir\n\nZips an entire directory and puts the zip file next to it with the same name with a `.zip`\nappended.\n\n#### Example\n\n```bash\n$ tree\n.\n└── some-files\n    ├── important-document.txt\n    └── not-sus-file.txt\n\n2 directories, 2 files\n\n$ zipdir some-files\n  adding: some-files/ (stored 0%)\n  adding: some-files/important-document.txt (stored 0%)\n  adding: some-files/not-sus-file.txt (deflated 5%)\n\n$ tree\n.\n├── some-files\n│   ├── important-document.txt\n│   └── not-sus-file.txt\n└── some-files.zip\n\n2 directories, 3 files\n```\n\n## Contributions\n\nContributions are always welcome. For example by expanding the supported package managers in\n[`scripts/updateall`](scripts/updateall).\n\n## Licence\n\nThese scripts are distributed under the `GPL-3.0` licence.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirokay%2Fshell-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirokay%2Fshell-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirokay%2Fshell-utils/lists"}