ソースコードのファイル数、行数、使われている言語の割合を瞬時に調べる - Milkode 0.9.3

インストール

$ gem install milkode

詳しくはこちらをどうぞ - ダウンロード, Gems

milk info

milk info コマンドを使うと、登録されたパッケージの

  1. ファイル数
  2. 使われている言語の割合(breakdown)
  3. 行数

を表示することが出来ます。

$ milk info
Name:      milkode
Ignore:    ["test/data"]
Options:   {:fav=>true}
Records:   112
Breakdown: Ruby:75(66%), Haml:10(8%), CSS:8(7%), JavaScript:6(5%), RDoc:2(1%), other:7(6%), unknown:4(3%)
Linecount: 11266

Githubのruby/rubyを調べるとこんな感じになります。
全体の70%がRuby、12%がCで出来ています。(ファイル数による割合なので行数で計算したらまた違う結果になると思います)

$ milk info
Name:      ruby
Options:   {:update_with_git_pull=>true}
Records:   3435
Breakdown: Ruby:2451(71%), C:416(12%), README:58(1%), XML:54(1%), other:168(4%), unknown:288(8%)
Linecount: 1528060

-t オプションを付けるとテーブル表示

$ milk info milkode ruby -t
Name        Records   Linecount
===============================
milkode         112       11266
ruby           3435     1528060

-a オプションで登録されている全てのパッケージをテーブル形式で表示します

$ milk info -a
milk info -a
Name                                 Records   Linecount
========================================================
gren                                      69        5578
rubywho                                   15        1091
tidtools                                  27        1100
.bashrc                                    1          79
ongaeshi_me                               73       10714
TimeCopy                                  12         612
transmaker                                31        1577
duplicate-thing                            2         100
milkode                                  112       11266
emacs-deferred                            10        5577
milkode-tokyu05                            5        2868
sinatra-easy-template                     17         866
firelink                                  47        3646
emacs-milkode                              2         162
auto-shell-command                        10         576
.
.
*milkode*  : 120 packages, 96287 records in /Users/ongaeshi/.milkode/db/milkode.db.

milk list の結果をパイプで渡す事も出来ます

$ milk list ruby | milk info -t
Name                                 Records   Linecount
========================================================
jruby-1.6.5.1                           6025      960852
jruby-1.6.8                             6053      968517
mruby                                    183       82446
ruby                                    3435     1528060
ruby-1.9.2-p180                         3184     1280192
ruby-1.9.3-p0                           3332     1465269
ruby-refm-1.9.1-dynamic-20100729       28678      742295
rubywho                                   15        1091

-b オプションでより詳細なbreakdown表示が出来ます。

$ milk info ruby -b
ruby        files  rate
=======================
Ruby         2451   71%
C             416   12%
README         58    1%
XML            54    1%
JSON           31    0%
Text           16    0%
Tcl            13    0%
RD              9    0%
PEM             9    0%
Autotools       8    0%
Batch File      8    0%
Emacs Lisp      8    0%
RDoc            8    0%
Perl            7    0%
HTML            6    0%
Python          6    0%
Scheme          6    0%
CGI             5    0%
eRuby           5    0%
RubyGems        4    0%
JavaScript      4    0%
ChangeLog       3    0%
Makefile        2    0%
AWK             2    0%
sed             1    0%
Shell           1    0%
Rakefile        1    0%
CSS             1    0%
SVG             1    0%
CSV             1    0%
Yaml            1    0%
gitignore       1    0%
unknown       288    8%
-----------------------
Total        3435  100%

lib/milkode/common/plang_detector.rb を編集する事で対応する言語種類を簡単に増やすことが出来ます。pull request がありましたら是非!

Webインターフェースからのアップデートに対応

Webインターフェース経由でアップデートが出来るようになりました。


長くmilkodeを使って頂いている方にはこちらの方が嬉しい機能かもしれません。

リリースノート

  • milk web
    • Webインターフェースからのアップデートに対応
  • milk info
    • ファイル数、行数、breakdown(種類別) 表示
    • テーブル形式で表示 (-t)
    • 全てのパッケージを表示 (-a)
    • 種類別詳細表示 (-b)
  • milk
    • milk plugins: add Milkode_Sublime
    • milk add: --no-auto-ignore の短縮形 -n を追加
  • database
    • Add Updater
    • IgnoreChecker の require忘れ
  • common
    • grenfiletest.rb: Add ignore suffix
    • Add PlgnDetector