{"id":21058239,"url":"https://github.com/95jonpet/pjsh","last_synced_at":"2026-04-30T03:40:53.837Z","repository":{"id":37036354,"uuid":"370160289","full_name":"95jonpet/pjsh","owner":"95jonpet","description":"A perfectly justified shell for the modern age.","archived":false,"fork":false,"pushed_at":"2023-10-18T18:48:20.000Z","size":1064,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-16T09:14:34.881Z","etag":null,"topics":["rust","rust-lang","shell","shell-script"],"latest_commit_sha":null,"homepage":"https://peterjonsson.se","language":"Rust","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/95jonpet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-05-23T21:25:00.000Z","updated_at":"2024-01-12T18:20:06.000Z","dependencies_parsed_at":"2025-01-20T19:34:17.487Z","dependency_job_id":"d7ada32b-0f78-4ff1-8bad-525e198e3c8c","html_url":"https://github.com/95jonpet/pjsh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/95jonpet/pjsh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/95jonpet%2Fpjsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/95jonpet%2Fpjsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/95jonpet%2Fpjsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/95jonpet%2Fpjsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/95jonpet","download_url":"https://codeload.github.com/95jonpet/pjsh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/95jonpet%2Fpjsh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32454157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"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":["rust","rust-lang","shell","shell-script"],"created_at":"2024-11-19T17:07:13.734Z","updated_at":"2026-04-30T03:40:53.343Z","avatar_url":"https://github.com/95jonpet.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/95jonpet/pjsh\"\u003e\n    \u003cimg src=\"doc/logo.svg\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n  \u003ch3 align=\"center\"\u003ePJSH\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    A perfectly justified shell for the modern age.\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## About The Project\n\n![PJSH smart pipeline](doc/smart-pipeline.svg)\n\n_PJSH_ is a shell that aims to make the shell easier and more predictable to use. The syntax is mostly kept from the [POSIX Shell Specification](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html), but legacy implementation details are removed in order to increase the readability and usability of shell scripts.\n\nPJSH does not require heavy quoting around arguments as splitting is never done implicitly. If it looks like a word in code, it is also a word after expanding variables.\n\nThere is also support for multiline strings in which leading whitespace is trimmed in a sensible manner. This means that text indentation is not ruined in the same way as with the [heredoc](https://en.wikipedia.org/wiki/Here_document) seen in POSIX shells.\n\nPJSH is designed to satisfy the following requirements:\n\n- Command execution is predictable.\n- Shell scripts are readable.\n- The shell is not locked to a specific operating system.\n\n## Built With\n\nPJSH is built using the following software:\n\n- [Rust](https://www.rust-lang.org/)\n- [FPM](https://github.com/jordansissel/fpm)\n- [Docker](https://www.docker.com)\n- [Jenkins](https://www.jenkins.io)\n\n## Getting Started\n\nPJSH can be run locally using [cargo](https://doc.rust-lang.org/stable/cargo).\n\n```bash\n# Clone the repository.\ngit clone https://github.com/95jonpet/pjsh.git\n\n# Compile and run PJSH from the source code.\ncargo run\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F95jonpet%2Fpjsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F95jonpet%2Fpjsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F95jonpet%2Fpjsh/lists"}