Skip to content

pferrarezi/touch-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Touch Rust

Uma implementação do comando Unix touch em Rust, que cria arquivos vazios.

Descrição

Este projeto é uma versão simplificada do comando touch do Unix, escrito em Rust. Ele permite criar um ou mais arquivos vazios de forma rápida e eficiente, com validação de nomes de arquivos para evitar caracteres inválidos.

Funcionalidades

  • ✅ Criação de arquivos vazios
  • ✅ Suporte para múltiplos arquivos em um único comando
  • ✅ Validação de nomes de arquivos (evita caracteres especiais inválidos)
  • ✅ Não sobrescreve arquivos existentes
  • ✅ Mensagens de erro informativas em português

Pré-requisitos

  • Rust 1.x ou superior (edition 2024)
  • Cargo (gerenciador de pacotes do Rust)

Instalação

Clone o repositório

git clone https://github.com/pferrarezi/touch-rust.git
cd touch-rust

Compile o projeto

cargo build --release

O executável compilado estará disponível em target/release/touch.

Uso

Sintaxe básica

touch <arquivo1> [arquivo2] [arquivo3] ...

Exemplos

Criar um único arquivo:

./target/release/touch meu_arquivo.txt

Criar múltiplos arquivos:

./target/release/touch arquivo1.txt arquivo2.log arquivo3.md

Criar arquivos em diferentes diretórios:

./target/release/touch docs/readme.md src/main.rs

Validação de Nomes

O programa valida os nomes dos arquivos e não permite os seguintes caracteres especiais:

/ \ : * + , ; < > ? = | " ' [ ] { }

Observação importante: Se um nome de arquivo contiver algum desses caracteres, ele será silenciosamente ignorado sem exibir mensagens de erro ou aviso. Apenas arquivos com nomes válidos serão criados.

Desenvolvimento

Compilar em modo de desenvolvimento

cargo build

Executar testes

cargo test

Verificar o código

cargo check
cargo clippy

Estrutura do Projeto

touch-rust/
├── Cargo.toml          # Configuração do projeto e dependências
├── Cargo.lock          # Lock de versões das dependências
├── README.md           # Este arquivo
└── src/
    └── main.rs         # Código fonte principal

Como Funciona

  1. Validação: O programa valida cada nome de arquivo fornecido para garantir que não contenha caracteres inválidos
  2. Verificação: Verifica se o arquivo já existe
  3. Criação: Se o arquivo não existir, cria um arquivo vazio
  4. Tratamento de Erros: Exibe mensagens de erro apropriadas caso ocorra algum problema durante a criação

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para:

  1. Fazer um fork do projeto
  2. Criar uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona alguma feature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abrir um Pull Request

Licença

Este projeto é de código aberto e está disponível para uso livre.

Autor

Agradecimentos

Inspirado no comando touch do Unix/Linux, reimplementado em Rust para fins educacionais e práticos.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages