run-minishelly.mp4
Este projeto consiste em uma replica do bash, desenvolvida em linguagem C utilizando a metodologia XP com TDD. O projeto foi realizado em dupla e conta com diversas funcionalidades que tornam a experiência de uso semelhante ao bash original.
O Bash é um interpretador de comandos de texto que funciona como uma interface entre o usuário e o sistema operacional. Ele permite a execução de comandos, scripts e programas de forma interativa ou automatizada. O Bash é uma ferramenta essencial para administradores de sistemas e desenvolvedores, pois facilita a execução de tarefas complexas e repetitivas.
O desenvolvimento dessa replica do bash em C teve um impacto significativo em nosso aprendizado e habilidades como engenheiros de software. Através desse projeto, adquirimos conhecimento em linguagem C, metodologia XP, TDD e diversas funcionalidades do bash. Além disso, a prática de trabalhar em dupla nos permitiu aprimorar nossas habilidades de colaboração e comunicação.
- Trabalho em equipe: desenvolvemos o projeto em dupla, o que exigiu comunicação eficaz, colaboração constante e empatia ao entender as dificuldades do outro.
- Resolução de problemas: enfrentamos desafios durante o desenvolvimento do projeto e encontramos soluções criativas para superá-los.
- Linguagem C: aprofundamos nosso conhecimento em C ao implementar as funcionalidades do interpretador de comandos.
- Metodologia XP com TDD: Utilizamos a metodologia XP (Extreme Programming) com TDD (Test-Driven Development) para desenvolver o projeto, o que nos ajudou a garantir a qualidade do código e a facilitar a manutenção e evolução do software.
O minishelly possui a implementação das seguintes funções de um interpretador de comandos bash.
- Builtins
- echo -n
- env
- unset
- export
- pwd
- cd
- exit
- Exec commands
- pipe
- operator >
- operator <
- operator >>
- operator <<
- Signals
- ctrl-C
- ctrl-D
- ctrl-\
- String parser
- expand environ var
- expand $? exit code
- single quote
- double quote
- token creation
- Sys config
- prompt history
- prompt wait if there was no closing quote
Execute os seguintes comandos dentro da pasta srcs para compilar o programa e começar a utilizar.
build-minishelly.mp4
Dependências necessárias
- biblioteca readline.
- sistema operacional unix.
sudo apt install libreadline-dev
Compilação:
make
Limpar objetos, executável e recompilar:
make re
Limpar objetos:
make re
Limpar objetos e executável:
make re
Para executar os testes execute os comandos dentro da pasta tests.
Dependências necessárias
- valgrind.
- sistema operacional unix.
sudo apt install valgrind
Executar todos os testes:
make
Todos os comandos anteriores de exclusão de arquivos realizão a mesma ação dentro da pasta de testes.
Para executar um teste especifico execute o seguinte padrão de comando.
make run-test TEST_NAME=<test_obj_dir>/<test_name>