Pesquisa de site

cloc - Contagem de linhas de código em muitas linguagens de programação


Ao trabalhar em diferentes projetos, às vezes você pode ser solicitado a fornecer um relatório ou estatísticas do seu progresso, ou simplesmente calcular o valor do seu código.

Existe uma ferramenta simples, mas poderosa chamada “cloc – contar linhas de código” que permite contar todos os números do seu código e excluir comentários e linhas em branco ao mesmo tempo.

Ele está disponível em todas as principais distribuições Linux e suporta múltiplas linguagens de programação e extensões de arquivo e não possui nenhum requisito específico para ser usado.

Neste tutorial você aprenderá como instalar e usar cloc em seu sistema Linux.

Como instalar e usar Cloc em sistemas Linux

Instalar cloc é fácil e simples. Abaixo você pode ver como instalar o cloc em diferentes sistemas operacionais com seus gerenciadores de pacotes relacionados:

sudo apt install cloc                  # Debian, Ubuntu
sudo yum install cloc                  # Red Hat, Fedora
sudo dnf install cloc                  # Fedora 22 or later
sudo pacman -S cloc                    # Arch
sudo emerge -av dev-util/cloc          # Gentoo https://packages.gentoo.org/packages/dev-util/cloc
sudo apk add cloc                      # Alpine Linux
sudo pkg install cloc                  # FreeBSD
sudo port install cloc                 # Mac OS X with MacPorts
brew install cloc                      # Mac OS X with Homebrew
npm install -g cloc                    # https://www.npmjs.com/package/cloc

Cloc pode ser usado para contar linhas em um arquivo específico ou em vários arquivos dentro de um diretório. Para usar cloc simplesmente digite cloc seguido do arquivo ou diretório que deseja examinar.

Aqui está um exemplo de um arquivo no bash. O arquivo em questão contém o seguinte código em bash:

cat bash_script.sh

Agora vamos executar o cloc nele.

cloc bash_script.sh

Como você pode ver, contou o número de arquivos, linhas em branco, comentários e linhas de código.

Outro recurso interessante do cloc é que ele pode ser usado até mesmo em arquivos compactados. Por exemplo, baixei o arquivo WordPress mais recente e executei cloc nele.

cloc latest.tar.gz

Aqui está o resultado:

Você pode ver que ele reconhece os diferentes tipos de código e separa as estatísticas por linguagem.

Caso você precise obter um relatório para vários arquivos em um diretório você pode usar a opção “--by-file ”, que contará as linhas em cada arquivo e fornecerá um relatório para eles. Isso pode demorar um pouco para projetos com muitos arquivos e milhares de linhas de código.

A sintaxe é a seguinte:

cloc --by-file <directory>

Embora a ajuda do cloc seja facilmente legível e compreensível, incluirei algumas das opções extras que podem ser usadas com o cloc que alguns usuários podem achar úteis.

  • --diff – calcula as diferenças no código entre os arquivos de origem de set1 e set2. A entrada pode ser uma mistura de arquivos e diretórios.
  • --git – força as entradas a serem reconhecidas como alvos git se as mesmas não forem primeiro identificadas como nomes de arquivos ou diretórios.
  • --ignore-whitespace – ignora o espaço em branco horizontal ao comparar arquivos com --diff.
  • --max-file-size= – se você quiser pular arquivos maiores que a quantidade especificada de MB.
  • --exclude-dir=, – exclui determinados diretórios separados por vírgula.
  • --exclude-ext=, – exclui as extensões de arquivo fornecidas.
  • --csv – exporta os resultados para o formato de arquivo CSV.
  • --csv-delimiter= – use o caractere como delimitador.
  • --out= – salve os resultados em <file>.
  • --quiet – suprime todas as mensagens informativas e mostra apenas o relatório final.
  • --sql= – escreve os resultados como instruções de criação e inserção que podem ser lidas por um programa de banco de dados como SQLite.
Conclusão

Cloc é um pequeno utilitário útil que definitivamente é bom ter em seu arsenal. Embora possa não ser usado no dia a dia, pode ajudá-lo quando você precisar gerar algum relatório ou se estiver apenas curioso para saber como está o seu projeto.