{"id":19958645,"url":"https://github.com/wick3dr0se/bashin","last_synced_at":"2025-07-26T01:18:41.381Z","repository":{"id":38213561,"uuid":"504743915","full_name":"wick3dr0se/bashin","owner":"wick3dr0se","description":"A minimal BASH framework","archived":false,"fork":false,"pushed_at":"2024-02-12T06:37:35.000Z","size":149,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-07T21:41:32.706Z","etag":null,"topics":["bash","framework","interpreter","library","script"],"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/wick3dr0se.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}},"created_at":"2022-06-18T04:34:40.000Z","updated_at":"2025-02-27T17:36:09.000Z","dependencies_parsed_at":"2023-01-21T22:04:07.956Z","dependency_job_id":"64b6a614-fd62-4e08-b8e0-67cd73b643f0","html_url":"https://github.com/wick3dr0se/bashin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wick3dr0se%2Fbashin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wick3dr0se%2Fbashin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wick3dr0se%2Fbashin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wick3dr0se%2Fbashin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wick3dr0se","download_url":"https://codeload.github.com/wick3dr0se/bashin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252259305,"owners_count":21719659,"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":["bash","framework","interpreter","library","script"],"created_at":"2024-11-13T01:43:58.257Z","updated_at":"2025-05-03T21:30:51.988Z","avatar_url":"https://github.com/wick3dr0se.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003e:crystal_ball: bashin\u003c/h1\u003e\n\u003cp\u003eA minimal BASH framework\u003c/p\u003e\n\n\u003cimg src=\"https://img.shields.io/badge/Shell_Script-121011?style=for-the-badge\u0026logo=gnu-bash\u0026logoColor=white\"\u003e\u003c/img\u003e\n\u003cimg src=\"https://img.shields.io/badge/Made%20with-Bash-1f425f.svg\"\u003e\u003c/img\u003e\n\u003cimg src=https://img.shields.io/badge/Maintained%3F-yes-green.svg\u003e\u003c/img\u003e\n\u003cimg src=\"https://badge-size.herokuapp.com/wick3dr0se/bashin/master/bashin.sh\"\u003e\u003c/img\u003e  \n\u003ca href=\"https://discord.gg/W4mQqNnfSq\"\u003e\n\u003cimg src=\"https://discordapp.com/api/guilds/913584348937207839/widget.png?style=shield\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\nBashin is an extension of BASH intended to be as minimal and clean as possible; Wrote in pure BASH, bashin is super fast\n\nMany scripters resort to slow external commands glued together with pipes and subshells. Of course they have their use cases but generally (for performance sake) they should be avoided\n\nBashin supports push, pop, cycling arrays and many more array/stack operations. Bashin handles ANSI escape sequences that make coloring, positioning and other terminal modifications much more simple (like building a TUI)\n\n```bash\npush 'a' 'b' 'c'\n\necho \"${STACK[@}\"\n```\n\n\u003e a b c\n\n```bash\nstack -r\n\necho \"${STACK[@]}\"\n```\n\n\u003e c b a\n\n```bash\narr=('a' 'b' 'c')\n\nreverse_array \"${arr[@]}\"\n\necho \"${REVERSE[@]}\"\n```\n\n\u003e c b a\n\n```bash\narr1=('a' 'b' 'c') arr2=('a' 'c')\n\nunique \"${arr1[*]}\" \"${arr2[*]}\"\n\necho \"${UNIQUE[@]}\"\n```\n\n\u003e b\n\n— Among many other things; Bashin can be sourced interactively or per script\n\n# Auto Setup\nexecute the setup.sh script (recommended)\n\n```bash\nbash \u003c(curl -s https://raw.githubusercontent.com/wick3dr0se/bashin/main/setup.sh)\n```\n\n*the one-liner above will remotely execute the `bashin` setup script - including `bashin`*\n\n## Manual Setup\nclone the repository\n```bash\ngit clone https://github.com/wick3dr0se/bashin\u0026\u0026 cd \"${_##*/}\"\n```\n\nexecute the setup.sh script `bash setup.sh`\n\notherwise source bashin within another script:\n```bash\n\u003cpath\u003e/bashin\n# or\n. \u003cpath\u003e/bashin\n```\n\nsource within your ~/.bashrc to use interactively \u0026 globally\n\nthen use `import_all` or `import` to manually source necessary procs (functions), e.g. `import ansi`\n\n*core libs (scripts) are implicitly imported*\n\n# How to Use\n\nSee `usage.sh` for examples and view documentation in the respective library directory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwick3dr0se%2Fbashin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwick3dr0se%2Fbashin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwick3dr0se%2Fbashin/lists"}