cloc - Καταμέτρηση γραμμών κώδικα σε πολλές γλώσσες προγραμματισμού


Ενώ εργάζεστε σε διαφορετικά έργα, μερικές φορές μπορεί να σας ζητηθεί να παράσχετε μια αναφορά ή στατιστικά στοιχεία για την πρόοδό σας ή απλά να υπολογίσετε την αξία του κωδικού σας.

Υπάρχει αυτό το απλό αλλά ισχυρό εργαλείο που ονομάζεται “cloc - count lines of code” που σας επιτρέπει να μετράτε όλο τον αριθμό του κώδικα και να αποκλείετε ταυτόχρονα σχόλια και κενές γραμμές.

Είναι διαθέσιμο σε όλες τις μεγάλες διανομές Linux και υποστηρίζει πολλές γλώσσες προγραμματισμού και επεκτάσεις αρχείων και δεν έχει συγκεκριμένες απαιτήσεις για χρήση.

Σε αυτό το σεμινάριο θα μάθετε πώς να εγκαταστήσετε και να χρησιμοποιήσετε το cloc στο σύστημα Linux.

Πώς να εγκαταστήσετε και να χρησιμοποιήσετε το Cloc σε συστήματα Linux

Η εγκατάσταση του cloc είναι εύκολη και απλή. Παρακάτω μπορείτε να δείτε πώς να εγκαταστήσετε cloc σε διαφορετικά λειτουργικά συστήματα με τους σχετικούς διαχειριστές πακέτων:

$ 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 μπορεί να χρησιμοποιηθεί για την καταμέτρηση γραμμών σε συγκεκριμένο αρχείο ή σε πολλά αρχεία στον κατάλογο. Για να χρησιμοποιήσετε το cloc απλά πληκτρολογήστε cloc ακολουθούμενο από το αρχείο ή τον κατάλογο που θέλετε να εξετάσετε.

Εδώ είναι ένα παράδειγμα από ένα αρχείο στο bash. Το εν λόγω αρχείο περιέχει τον ακόλουθο κώδικα σε bash:

$ cat bash_script.sh

Τώρα ας τρέξουμε σε αυτό.

$ cloc bash_script.sh

Όπως μπορείτε να δείτε, μετρήθηκε ο αριθμός των αρχείων, κενές γραμμές, σχόλια και γραμμές κώδικα.

Ένα άλλο ενδιαφέρον χαρακτηριστικό του cloc είναι ότι μπορεί ακόμη και να χρησιμοποιηθεί σε συμπιεσμένα αρχεία. Για παράδειγμα, έχω κατεβάσει το πιο πρόσφατο αρχείο WordPress και έχω τρέξει σε αυτό.

$ cloc latest.tar.gz

Εδώ είναι το αποτέλεσμα:

Μπορείτε να δείτε ότι αναγνωρίζει τους διαφορετικούς τύπους κώδικα και διαχωρίζει τα στατιστικά ανά γλώσσα.

Σε περίπτωση που πρέπει να λάβετε μια αναφορά για πολλά αρχεία σε έναν κατάλογο, μπορείτε να χρησιμοποιήσετε την επιλογή “--by-file” , η οποία θα μετρά τις γραμμές σε κάθε αρχείο και θα παρέχει μια αναφορά για αυτά. Μπορεί να χρειαστεί λίγος χρόνος για έργα με πολλά αρχεία και χιλιάδες γραμμές κώδικα.

Η σύνταξη έχει ως εξής:

$ cloc --by-file <directory>

Ενώ η βοήθεια του cloc είναι ευανάγνωστη και κατανοητή, θα συμπεριλάβω μερικές από τις επιπλέον επιλογές που μπορούν να χρησιμοποιηθούν με cloc ορισμένοι χρήστες μπορεί να βρουν χρήσιμες.

  • --diff <set1> <set2> – computes the differences in code between the source files of set1 and set2. The input can be a mix of files and directories.
  • --git – forces the inputs to be recognized as git targets if the same are not first identified as file or directory names.
  • --ignore-whitespace – ignores the horizontal whitespace when comparing files with --diff.
  • --max-file-size=<MB> – if you want to skip files larger than the given amount MB.
  • --exclude-dir=<dir1>,<dir2> – exclude given comma separated directories.
  • --exclude-ext=<ext1>,<ext2> – exclude the given file extensions.
  • --csv – export results to CSV file format.
  • --csv-delimiter=<C> – use the character <C> as the delimiter.
  • --out=<file> – save the results to <file>.
  • --quiet – suppress all information messages and show only the final report.
  • --sql=<file> – write the results as create and insert statements that can be read by a database program such as SQLite.

Το Cloc είναι λίγο χρήσιμο βοηθητικό πρόγραμμα που σίγουρα είναι καλό να έχετε στο οπλοστάσιό σας. Παρόλο που ενδέχεται να μην χρησιμοποιείται σε καθημερινή βάση, μπορεί να σας βοηθήσει όταν πρέπει να δημιουργήσετε κάποια αναφορά ή εάν είστε απλώς περίεργοι πώς προχωρά το έργο σας.