{"id":19483420,"url":"https://github.com/librity/ft_minishell","last_synced_at":"2026-03-17T09:41:26.458Z","repository":{"id":58164029,"uuid":"523937649","full_name":"librity/ft_minishell","owner":"librity","description":"42 São Paulo - minishell","archived":false,"fork":false,"pushed_at":"2023-01-01T11:25:43.000Z","size":858,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-25T16:46:08.207Z","etag":null,"topics":["42","42born2code","42cursus","42projects","42saopaulo","42school","bash","c","minihell","minishell","minishell42","minunit","repl","shell","unit-testing"],"latest_commit_sha":null,"homepage":"https://www.42sp.org.br/","language":"C","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/librity.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}},"created_at":"2022-08-12T03:00:31.000Z","updated_at":"2024-10-18T09:13:37.000Z","dependencies_parsed_at":"2023-01-31T22:01:14.393Z","dependency_job_id":null,"html_url":"https://github.com/librity/ft_minishell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/librity/ft_minishell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fft_minishell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fft_minishell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fft_minishell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fft_minishell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/librity","download_url":"https://codeload.github.com/librity/ft_minishell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fft_minishell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30620760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T08:10:05.930Z","status":"ssl_error","status_checked_at":"2026-03-17T08:10:04.972Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["42","42born2code","42cursus","42projects","42saopaulo","42school","bash","c","minihell","minishell","minishell42","minunit","repl","shell","unit-testing"],"created_at":"2024-11-10T20:15:01.709Z","updated_at":"2026-03-17T09:41:26.431Z","avatar_url":"https://github.com/librity.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch3 align=\"center\"\u003e42 São Paulo - minishell\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![42 São Paulo](https://img.shields.io/badge/42-SP-1E2952)\n![License](https://img.shields.io/github/license/librity/ft_minishell?color=yellow)\n![Code size in bytes](https://img.shields.io/github/languages/code-size/librity/ft_minishell?color=blue)\n![Lines of code](https://img.shields.io/tokei/lines/github/librity/ft_minishell?color=blueviolet)\n![Top language](https://img.shields.io/github/languages/top/librity/ft_minishell?color=ff69b4)\n![Last commit](https://img.shields.io/github/last-commit/librity/ft_minishell?color=orange)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Build](https://github.com/librity/ft_minishell/actions/workflows/build.yml/badge.svg)](https://github.com/librity/ft_minishell/actions/workflows/build.yml)\n[![Tests](https://github.com/librity/ft_minishell/actions/workflows/tests.yml/badge.svg)](https://github.com/librity/ft_minishell/actions/workflows/tests.yml)\n[![Norminette v3](https://github.com/librity/ft_minishell/actions/workflows/norminette_v3.yml/badge.svg)](https://github.com/librity/ft_minishell/actions/workflows/norminette_v3.yml)\n[![LucasKuhn Tester](https://github.com/librity/ft_minishell/actions/workflows/LucasKuhn-tester.yml/badge.svg)](https://github.com/librity/ft_minishell/actions/workflows/LucasKuhn-tester.yml)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e  The most hellish shell to ever shell in pure C.\n  \u003cbr\u003e\n\u003c/p\u003e\n\n---\n\n## 📜 Table of Contents\n\n- [🐚 Cone Snails](#cone_snails)\n- [🧐 About](#about)\n- [🏁 Getting Started](#getting_started)\n- [🧪 Tests](#tests)\n- [📝 Notes](#notes)\n- [🛸 42 São Paulo](#ft_sp)\n- [📚 Resources](#resources)\n\n## 🐚 Cone Snails \u003ca name = \"cone_snails\"\u003e\u003c/a\u003e\n\n[Cone snails, cone shells, or cones](https://wikiless.org/wiki/Cone_snail?lang=en)\nare a large group of small- to large-sized\n**extremely venomous predatory**\nsea snails, marine gastropod molluscs.\n\n![A group of shells of various species of cone snails](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/12_Conidae_seashells.webp/1200px-12_Conidae_seashells.webp.png)\n\nThe intricate color patterns of cones have made them one of the most popular collectible shells.\n\nMost of the cone snails that hunt worms rather than fish\nare probably not a risk to humans, with the possible exception of larger species.\nSymptoms of a more serious cone snail sting include intense,\nlocalized pain, swelling, numbness and tingling and vomiting.\nSymptoms can start immediately or can be delayed for days.\nSevere cases involve muscle paralysis, changes in vision,\nand respiratory failure that can lead to death.\n\n\u003csup\u003eSOURCE: https://wikiless.org/wiki/Cone_snail?lang=en\u003c/sup\u003e\n\nAs deadly as they may be, cone snails ain't got nothing on minishells.\n\n## 🧐 About \u003ca name = \"about\"\u003e\u003c/a\u003e\n\n```elixir\n/-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\\\n|                                                                                |\n|                                                                                |\n|                                              .:~!?5J7!!?7!:.                   |\n|                                          .:~!7JY??P5J7!7YG5J7^:.               |\n|                                       .:~!!?7Y5J??J77YG55PJ?J!JY?!^:..         |\n|                                     .:!?5Y~77J777?!!7?55Y!!7YY?7?YJ77?77!~~^:  |\n|                                   ..!?7J7~~!7Y~~!7~!?7!7?77~^~!?JY7777^~^~^!.  |\n|                                .:^!J???J!!~^!Y?~~7~~~77P?!J7^:~~~~~^::~^::^:   |\n|                              .^^~75GJ7?J77!!~!Y77Y!?7^J?!^!^~^~^:.:^:..:~~:    |\n|                            .::^!!7!7~!?J77!~^~7!~~7!!~~::~^~~:^^!^::..:!!^.    |\n|                          .:!:~7!?7^^^~J?J7~::~:J77^^^^!~^~^~:..:~:..:^!?~^.    |\n|                        ..::~Y7~77^:::^!7JYJ~:::!JY^:7~^:^^!!7!^.:^..~77?!?.    |\n|                      .^^:::^~!~J!!7P?!7?PGGP?::.:!~:.~^:^:.^J7~..^~~7?~!Y7.    |\n|                     .~7^.::^JPJ?7YY~JY!5GB#\u0026B~..:.:^::::.:.:~::.^!7G5~^!7!     |\n|                   .!?!7^:~5!?J7~^?~:~7~!?7?5#?:...:::^^:.:~:...::~~?7~~~7^     |\n|                  ^!!7757~Y\u0026Y:7?!YY^^!!^:~^::^^:.~~: ..:7^!J^:.:^^??7!^!!~^     |\n|                .:!77^JY?YGB7:..:!!^:^7!^.....:.^!!::..  .:!^~^^~!Y!!!^~^J:     |\n|              ....^557!7!777^.::::^:^!!^!^:..~^:!??~!~^^...:..^^~7~!^^:!!~      |\n|            .:^:.::Y7!?J~^!^~:...:::777^YJ~~^!J!^?7^^^:^^:^^:::^^^~~~:^Y!.      |\n|           :^:^:^:!7~^~!^^~!JJ!:^^^!77!^!7~^:^!!^~^....:::...::^~!!!!~!^        |\n|          ^!7JY~77^..::^^7^7JJ5!!!:^~!^:~!~~7!!!~~^^~~~~~~!!77777!~!!:.         |\n|        .^~~Y!~!!~......^!J?JP?!~7~!!~!~^^^^~^~!!7????????77777777^:.           |\n|      .^~7?7?~^~7~^::^^77~^~7?7~~!7777??????JJJJJ???777!!!!!~?7~^:.             |\n|     :?77J?7~!~7YJ7JJJYJ?JJ?JY555PPPP555YYJJ???777777!!~~~^^^:.                 |\n|    ^GBP5YP5YJY5GB##\u0026#######BBBGGP55YJJJ?77!~^::^:^!^:.                         |\n|   ^G\u0026BB###\u0026@@@@@@@@\u0026\u0026\u0026\u0026#BBGGPP55YJJ??7?!::.                                    |\n|   :..:YG#\u0026\u0026\u0026\u0026\u0026\u0026\u0026\u0026\u0026\u0026##BBGP55Y?77?!~^::.^                                        |\n|       :!JG##\u0026\u0026\u0026##BBP55Y!^:::^                                                  |\n|        ~7JPGGP5J!~^^:^                                                         |\n|       .~~^:::                                                                  |\n|                                                                                |\n|                                                                                |\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|\n|                                                                                |\n|                      __        __        /\\            __   __                 |\n|               _____ |__| ____ |__| ______  |__   ____ |  | |  |                |\n|              /     \\|  |/    \\|  |/  ___/  |  \\_/ __ \\|  | |  |                |\n|             |  | |  \\  |   |  \\  |\\___ \\|      \\  ___/_  |__  |__              |\n|             |__|_|  /__|___|  /__|____  \\___|  /\\___  /____/____/              |\n|                   \\/        \\/        \\/     \\/     \\/                         |\n|                                            by lpaulo-m \u0026 wwallas-              |\n|                                                                                |\n|              - CONTROL+C: Reads new line                                       |\n|              - CONTROL+D: Exits program cleanly                                |\n|              - help: Print help message                                        |\n|                                                                                |\n\\-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=/\n```\n\nA fully featured shell based on bash.\nIt reads a command from the user, lexes it, parses it, and executes it.\nIt handles pipes, file redirections and heredocs.\nIt has a working history and responds to signals.\nIt also took 12 years to make (🤭).\n\nFor more details and examples you can read\nthe [Docs](./docs) and the [Checklist](./docs/checklist.md).\n\n## 🏁 Getting Started \u003ca name = \"getting_started\"\u003e\u003c/a\u003e\n\n### 📦 Dependencies\n\nYou will need to install `libreadline-dev`.\nYou can get it through apt-get (recommended):\n\n```bash\n$ sudo apt-get install libreadline-dev\n```\n\nOr you could build it yourself if you're into that:\n\n- https://git.savannah.gnu.org/cgit/readline.git?h=devel\n\n### 🖥️ Installing\n\nClone the repo and build with `make`:\n\n```bash\n$ git clone --recurse-submodules https://github.com/librity/ft_minishell.git\n$ cd ft_minishell\n$ make\n```\n\nThis should create a `minishell` executable in the root folder:\n\n```bash\n./minishell\n```\n\nYou can also run it in debug mode with the flag `-d`:\n\n```bash\n./minishell -d\n```\n\n## 🧪 Tests \u003ca name = \"tests\"\u003e\u003c/a\u003e\n\nYou can run all tests with:\n\n```bash\n$ make -s tests\n```\n\nOr individual tests with:\n\n```bash\n$ make -s test t=lexer/tokens\n```\n\nYou can also run them with `valgrind`:\n\n```bash\n$ make -s vgtests\n$ make -s vgtest t=lexer/tokens\n```\n\n## 📝 Notes \u003ca name = \"notes\"\u003e\u003c/a\u003e\n\n- [Docs](./docs)\n\n## 🛸 42 São Paulo \u003ca name = \"ft_sp\"\u003e\u003c/a\u003e\n\nPart of the larger [42 Network](https://www.42.fr/42-network/),\n[42 São Paulo](https://www.42sp.org.br/) is a software engineering school\nthat offers a healthy alternative to traditional education:\n\n- It doesn't have any teachers and classes.\n- Students learn by cooperating\n  and correcting each other's work (peer-to-peer learning).\n- Its focus is as much on social skills as it is on technical skills.\n- It's completely free to anyone that passes its selection process -\n  [**The Piscine**](https://42.fr/en/admissions/42-piscine/)\n\nIt's an amazing school, and I'm grateful for the opportunity.\n\n## 📚 Resources \u003ca name = \"resources\"\u003e\u003c/a\u003e\n\n- [Docs](./docs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrity%2Fft_minishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibrity%2Fft_minishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrity%2Fft_minishell/lists"}