18 sierpnia 2010 ~ Komentarzy: 7

Jak policzyć linie kodu?

{lang: 'pl'}

Po zakończeniu każdego kamienia milowego warto dowiedzieć się ile kodu mamy w projekcie. Jak wiadomo, kod liczymy w liniach. Nie wystarczy jednak policzyć wystąpień znaków nowej linii w plikach źródłowych, gdyż często stosujemy puste linie w celu zwiększenia przejrzystości kodu. W tym wpisie przedstawiam skrypt Bash-owy, który zlicza linie kodu zgrupowane według języków programowania.

Grep, RegExp-y i WildCard-y

Aby policzyć ile linii kodu jest w pliku index.html należy użyć programu grep. Zastosowanie prostego wyrażenia regularnego odsiewa puste linie oraz linie zawierające tylko białe znaki.

grep -vc "^[\t ]*$" index.html

W celu zliczenia linii kodu dla wszystkich plików html w katalogu można zastosować wildcard.

grep -vc "^[\t ]*$" *.html

Trochę Bash-a

Poniższy skrypt nie jest w pełni uniwersalny. Należy go zmodyfikować wprowadzając odpowiednie wyrażenia wildcard. Nic nie stoi na przeszkodzie, żeby w zależności od projektu dopisać inne języki programowania lub usunąć nieużywane.

#!/bin/bash

# funkcja pobiera listę wildcardów
# wypisuje na ekran ilość linii kodu
function printlines() {
        local WILDCARD
        local LINES=0
        for WILDCARD in $@; do
                local L=`grep -vc "^[\t ]*$" $WILDCARD`
                LINES=$[$LINES + $L]
        done;
        echo $LINES;
}

# wildcards - tu zmieniamy
HTML="templates/*.html"
CSS="public/css/*.css"
JS="public/js/*.js public/js/modules/*.js public/js/classes/*.js"
PYTHON="config/*.py controllers/*.py lib/*.py model/*.py"

# echo
echo "HTML       :" `printlines $HTML` "linii"
echo "CSS        :" `printlines $CSS` "linii"
echo "JavaScript :" `printlines $JS` "linii"
echo "Python     :" `printlines $PYTHON` "linii"

Przykładowy wynik działania skryptu:

HTML       : 2020 linii
CSS        : 1204 linii
JavaScript : 2319 linii
Python     : 4240 linii

Po co to komu?

Jeżeli używamy skryptu systematycznie, możemy obserwować przyrost kodu podczas rozwoju aplikacji lub nawet spadek ilości kodu po optymalizacji. Oczywistym zastosowaniem jest również publikacja wyników działania skryptu się na stronie domowej projektu ;)

Podobne wpisy

  • Nie znaleziono

Komentarze dla “Jak policzyć linie kodu?”

  1. Tom 20 sierpnia 2010 at 12:33 Permalink

    Ciekawy wpis, przyda się :) A swoją drogą próbowałem Zlajkować Facebooka, ale jest jakiś error. pzdr!

  2. MySZ 21 sierpnia 2010 at 17:49 Permalink

    Polecam:
    http://cloc.sourceforge.net/
    http://labs.ohloh.net/ohcount

  3. Maciej Chałapuk 22 sierpnia 2010 at 18:11 Permalink

    Dzięki za info o błędzie. Już działa :)

  4. Adam Ziaja 26 lipca 2011 at 22:24 Permalink

    A o wc -l słyszał?

  5. Maciej Chałapuk 27 lipca 2011 at 08:38 Permalink

    `wc -l` zlicza wszystkie wystąpienia znaku przełamania wiersza.
    Moje rozwiązanie zlicza tylko niepuste linie.

  6. Adam Ziaja 24 sierpnia 2011 at 17:20 Permalink

    ls -la | grep -v ^$ | wc -l — i co teraz :) ?

  7. Maciej Chałapuk 25 sierpnia 2011 at 08:54 Permalink

    ls -la | grep -vc ^$ — tak lepiej :)


Dodaj komentarz