{"id":13468595,"url":"https://github.com/jcampbell05/volcano","last_synced_at":"2025-09-20T11:51:33.423Z","repository":{"id":188284674,"uuid":"678451058","full_name":"jcampbell05/volcano","owner":"jcampbell05","description":"A programming language which compiles to shell","archived":false,"fork":false,"pushed_at":"2024-04-25T10:05:11.000Z","size":176,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T02:41:15.669Z","etag":null,"topics":["bash","python","shell","transpiler"],"latest_commit_sha":null,"homepage":"","language":"Python","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/jcampbell05.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"jcampbell05","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-08-14T15:26:04.000Z","updated_at":"2024-09-12T01:43:40.000Z","dependencies_parsed_at":"2024-04-23T00:32:52.815Z","dependency_job_id":"61e50d6f-fba0-4664-8fc3-afce710a7f3e","html_url":"https://github.com/jcampbell05/volcano","commit_stats":null,"previous_names":["jcampbell05/volcano"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jcampbell05/volcano","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcampbell05%2Fvolcano","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcampbell05%2Fvolcano/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcampbell05%2Fvolcano/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcampbell05%2Fvolcano/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcampbell05","download_url":"https://codeload.github.com/jcampbell05/volcano/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcampbell05%2Fvolcano/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276091256,"owners_count":25583692,"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-09-20T02:00:10.207Z","response_time":63,"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","python","shell","transpiler"],"created_at":"2024-07-31T15:01:14.533Z","updated_at":"2025-09-20T11:51:33.359Z","avatar_url":"https://github.com/jcampbell05.png","language":"Python","funding_links":["https://github.com/sponsors/jcampbell05"],"categories":["Python"],"sub_categories":[],"readme":"# Volcano 🌋\n\nVolcano is a new programming language that is a subset of Python (Similar to MicroPython), designed to be compiled to shell script. It provides a simple and intuitive syntax that allows you to write shell scripts in Python, without having to worry about the complexities of shell syntax.\n\n## Why use Volcano?\n\nVolcano provides a number of benefits over traditional shell scripting:\n\n- **Pythonic**: Volcano is based on Python, so if you already know Python, you can easily write shell scripts in Volcano.\n- **Portability**: Volcano scripts can be run on any system that has shell installed, without having to worry about the differences between different shell environments as long as it's POSIX compiant.\n- **Interoperability**: Volcano scripts can be defined and called from within python allowing you\nto use the best tool for the job in any given situation.\n\nWrite using the syntax you know and love.\n\n```\ndef lets_go():\n    print(\"Lets get this party started\")\n\nlets_go()\n```\n\nBut get shell code you know can work where\nyou need.\n\n```\nlets_go () {\n    print \"Lets get this party started\"\n}\n\nlets_go\n```\n\n## Installation\n\nTo install Volcano firtly make sure `python` and `poetry` are installed then follow these steps:\n\n1. Clone the Volcano repository to your local machine.\n2. Navigate to the root directory of the repository.\n3. Run the following command to install Volcano:\n4. This will install Volcano and its dependencies on your system.\n\nOnce Volcano is installed, you can use it to build your Volcano shell scripts. To build a script, create a .vol\nfile with your Volcano code, and then run the `volcano build`` command with the path to your file. You should\nend up with a shell script in the same directory as your code.\n\nThis will build the myscript.vol file and create a shell script in the same directory called myscript.sh. To\nrun it directly just use `volcano run` instead.\n\nYou can also use the `--help` option to see the available command-line options:\n\n## Roadmap\n\n- **Async code**: Volcano currently does not support writing asynchronous code using the async and await keywords.\n- **Generator**: Volcano currently does not support generators\n- **Type methods**: Volcano currently does not support any of the low level methods such as tolower for string\n- **Classes and objects**: Volcano does not currently support classes and objects.\n- **Keyword arguments and star args**: Currently, Volcano does not support keyword arguments or references to *args or **kwargs.\n- **Context Manager**: Volcano currently does not support context managers\n- **Lambdas**: We have no support for lambdas\n- **Piping**: Volcano currently does not support piping from shell scripting.\n\nAny PRs implementhing these are welcome, you can read more on how Volcano is implemented in Documentation.md\n\nOverall, our roadmap for Volcano is focused on adding support for the features of Python that are most important for writing complex and sophisticated programs. We believe that by adding support for these features, we can make Volcano a more powerful and flexible tool for shell scripting.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcampbell05%2Fvolcano","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcampbell05%2Fvolcano","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcampbell05%2Fvolcano/lists"}