The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

コード行数の測定

Swiftでコード行数を測ろうとツールを探していたらclocというのがよさげでした

インストール

インストール方法は思ったよりたくさん用意されていてlinux系だけでなく、node.jsやhomebrew, macports用のも用意されていて、WindowsMac環境でも楽にインストールできます

npm install -g cloc                    # https://www.npmjs.com/package/cloc
sudo apt-get install cloc              # Debian, Ubuntu
sudo yum install cloc                  # Red Hat, Fedora
sudo pacman -S cloc                    # Arch
sudo pkg install cloc                  # FreeBSD
sudo port install cloc                 # Mac OS X with MacPorts
brew install cloc                      # Mac OS X with Homebrew

使い方

基本的にはclocのあとに対象のディレクトリを指定すれば、そのディレクトリ以下を含めてコードを解析してくれます

実行

$ cloc Hoge

実行結果

    1572 text files.
    1417 unique files.
     684 files ignored.

http://cloc.sourceforge.net v 1.64  T=19.50 s (46.0 files/s, 9700.3 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                               92           5068           5097          39838
Bourne Shell                    15           5644           7198          34171
Swift                          365           4776           4414          24868
m4                               8           1074            133           9969
C/C++ Header                   253           4803          14036           8319
Objective C                     43           1790            721           7418
make                            20            845            547           6923
YAML                            17             11              0            410
JSON                            14              0              0            360
D                               64              0              0            242
Python                           2             42             32            164
HTML                             1              0              0             94
Ruby                             1              6              0             60
Go                               1             10             15             20
-------------------------------------------------------------------------------
SUM:                           896          24069          32193         132856
-------------------------------------------------------------------------------

実行結果を見ると、SwiftやGoなどいろんな言語にも対応しているので、clocだけで、いろんなプロジェクトに適用できそうです。

また、いろいろなオプションも用意されており、 例えば以下のようにオプションを指定することにより除外するディレクトリを指定したりできます。

$ cloc Hoge --exclude-dir=vendor

詳しくはドキュメントを御覧ください