O
Project Stats é uma ferramenta simples e eficiente para contabilizar a quantidade de linhas e palavras em projetos de software. O script é escrito em Bash e pode ser facilmente adaptado e configurado para diferentes tipos de projetos e linguagens de programação.
Utilidade do Project Stats
Em projetos de software, é comum que desenvolvedores e gestores desejem medir a quantidade de código-fonte produzido, seja para fins de análise de produtividade, estimativa de tamanho de projeto ou simplesmente para fins de curiosidade. Neste contexto, o script Project Stats se apresenta como uma solução simples e eficiente para este tipo de análise.
Como funciona o Project Stats
O script busca por arquivos com extensões específicas, definidas pelo usuário, e realiza a contagem de linhas e palavras, desconsiderando diretórios que devem ser ignorados, também definidos pelo usuário. É possível configurar o diretório raiz do projeto, as extensões de arquivos a serem buscadas e os diretórios a serem ignorados, de acordo com as necessidades do usuário.
Configurando e executando o Project Stats
Para utilizar o Project Stats, basta clonar o repositório do GitHub:
git clone git@github.com:fberbert/project-report.git
Entrar no diretório do projeto:
cd project-report
Tornar o script executável:
chmod +x project-report.sh
Configurar o script de acordo com as necessidades do usuário, alterando os valores das variáveis:
project_root="/path/to/your/project"
extensions=("*.js" "*.jsx" "*.html" "*.css")
ignore_dirs=("node_modules")
No caso acima o script está configurado para buscar arquivos com as extensões .js, .jsx, .html e .css, ignorando o diretório node_modules. Essa configuração representa um projeto em ReactJS.
Se quiser utilizar o script para um projeto em NodeJS, por exemplo, basta alterar as extensões de arquivos para .js e .jsx e ignorar o diretório node_modules.
Para um projeto em Python, por exemplo, basta alterar as extensões de arquivos para .py e ignorar o diretório venv.
Em seguida basta executar o script:
./project-report.sh
A saída será algo como:
Lines: 13734 Words: 46219
Referência
O projeto está disponível no GitHub:
https://github.com/fberbert/project-report