{"id":30858545,"url":"https://github.com/hollowillow/scripts","last_synced_at":"2025-10-15T15:56:03.313Z","repository":{"id":283897405,"uuid":"953226346","full_name":"hollowillow/scripts","owner":"hollowillow","description":"Useful POSIX shell scripts I use on the daily","archived":false,"fork":false,"pushed_at":"2025-08-28T20:37:58.000Z","size":64,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-07T14:19:23.340Z","etag":null,"topics":["fzf-scripts","gplv3","posix","posix-compliant","posix-sh","posix-shell","script","scripting","scripts","shell","shell-script","shell-scripts"],"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/hollowillow.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":"2025-03-22T21:22:52.000Z","updated_at":"2025-08-28T20:38:02.000Z","dependencies_parsed_at":"2025-03-22T22:31:33.071Z","dependency_job_id":"9a1322a8-6db0-46c6-9043-c9907aaa79af","html_url":"https://github.com/hollowillow/scripts","commit_stats":null,"previous_names":["hollowillow/scripts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hollowillow/scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollowillow%2Fscripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollowillow%2Fscripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollowillow%2Fscripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollowillow%2Fscripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hollowillow","download_url":"https://codeload.github.com/hollowillow/scripts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollowillow%2Fscripts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279090313,"owners_count":26101180,"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-10-15T02:00:07.814Z","response_time":56,"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":["fzf-scripts","gplv3","posix","posix-compliant","posix-sh","posix-shell","script","scripting","scripts","shell","shell-script","shell-scripts"],"created_at":"2025-09-07T14:13:16.498Z","updated_at":"2025-10-15T15:56:03.298Z","avatar_url":"https://github.com/hollowillow.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# INTRODUCTION\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n![GitHub top language](https://img.shields.io/github/languages/top/hollowillow/scripts)\n![GitHub Repo stars](https://img.shields.io/github/stars/hollowillow/scripts)\n\nAll scripts contained within this repository are published and licensed under the [GPLv3 License](./LICENSE). \nAll forms of contribution or usage that falls under this license is welcome and encouraged.\n\n## USAGE\nClone the scripts within this repository into your PATH and make sure the files have the necessary permissions for execution.\n\n`git clone https://github.com/hollowillow/scripts`\n\nI highly advise that you carefully read the code of any scripts you plan to use, to understand at least the basics of how\nthey function before you ever try to run them on your system.\n\n### POSIX\nMost of these scripts try to follow POSIX compliancy, are tested on Arch Linux using Dash (Debian Almquist Shell),\nand state their dependencies in their documentation.\n\n### DOCUMENTATION\nAt the top each script file is located a comment block that provides basic necessary information for using said script.\nThis same comment block may also be viewed as a help message using the `-h` flag with any of the scripts.\n\nAdditional comments may appear within the files for added context and reasoning,\nfor those looking to adapt these scripts to their workflow.\n\n## SYNTAX GUIDELINES\nThe following is a list of certain syntax guidelines that I try to generally stick to.\nThis section can be useful for those trying to orient themselves in the scripts.\nNot all of the scripts strictly follow this guideline, or may still be in the process of\nbeing converted to it.\n\n### HELP MESSAGES\nAll help messages should be located at the top of a script file as a comment block after the shebang, leaving one line\nbetween the shebang empty.\n\nThe help message has to contain:\n- A simple summary of the script\n- A link to this repository\n- And a usage description, as per POSIX specifications\n\nThe help message may also contain:\n- A list of options if the script has any\n- A description further explaining general functionality of the script\n- A list of dependencies\n    - Optional dependencies need to specify they are optional, and/or the context in which they are required (example: wayland/x11)\n\nHere is a code block to use as a template for the formatting, paste directly after shebang:\n```sh\n#\n# summary:\n# repository: https://github.com/hollowillow/scripts\n#\n# usage:\n# options:\n#       -e      example options\n#\n# description:\n#       \n#       example description text\n#       second line of description text\n# \n# dependencies:\n\n```\n\nThe comment block can then be printed as a help message using the following code:\n```sh\n# create help message from comment block at the head of file\nif [ \"$1\" = \"-h\" ]; then\n        sed \"1,2d;s/^# //;s/^#$/ /;/^$/ q\" \"$0\"; exit 0\nfi\n```\n\n### COMMENTS\nAll comments should only explain WHY not HOW, with the exception of hard to read syntax such as sed arguments.\n\n### VARIABLES\nAll variables that pertain to files or directories on the system should be specified \nusing [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/).\n\nAll variable names should be written in full caps, using underscore as a substitute for space.\n\nAll variables should be as verbose as possible.\n\n### FUNCTIONS\nAll functions should be named verbosely using camel case.\n\n### EXITS AND ERROR MESSAGES\nAll error messages should be piped to stderr, followed by an immediate exit of the script.\n\n- Exit code 0 always means successful execution\n- Exit code 1 can be error or no selection, depending on the script\n- Exit code 2 is always error\n\n### MISC\n- All find commands should exclude .git subdirectories\n- All files parsed by a command should support # comments anywhere in the file\n- All scripts should be possible to be run non interactively\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhollowillow%2Fscripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhollowillow%2Fscripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhollowillow%2Fscripts/lists"}