シェルスクリプト、 cloc-git
このシェルスクリプトを使用して、1つのコマンドでリモートGitリポジトリの行数をカウントできます。
#!/usr/bin/env bash
git clone --depth 1 "$1" temp-linecount-repo &&
  printf "('temp-linecount-repo' will be deleted automatically)\n\n\n" &&
  cloc temp-linecount-repo &&
  rm -rf temp-linecount-repo
取り付け
このスクリプトでは、CLOC(「Count Lines of Code」)をインストールする必要があります。clocおそらくあなたのパッケージマネージャでインストールすることができます-例えば、brew install clocで自作。で公開されているdocker imagemribeiro/clocもあります。
スクリプトをインストールするには、そのコードをファイルに保存してcloc-git実行しchmod +x cloc-git、そのファイルを$PATHなどのフォルダに移動します/usr/local/bin。
使用法
スクリプトは引数を1つ取ります。これは、git clone受け入れるURLです。例はhttps://github.com/evalEmpire/perl5i.git(HTTPS)またはgit@github.com:evalEmpire/perl5i.git(SSH)です。「クローンまたはダウンロード」をクリックすると、GitHubプロジェクトページからこのURLを取得できます。
出力例:
$ cloc-git https://github.com/evalEmpire/perl5i.git
Cloning into 'temp-linecount-repo'...
remote: Counting objects: 200, done.
remote: Compressing objects: 100% (182/182), done.
remote: Total 200 (delta 13), reused 158 (delta 9), pack-reused 0
Receiving objects: 100% (200/200), 296.52 KiB | 110.00 KiB/s, done.
Resolving deltas: 100% (13/13), done.
Checking connectivity... done.
('temp-linecount-repo' will be deleted automatically)
     171 text files.
     166 unique files.                                          
      17 files ignored.
http://cloc.sourceforge.net v 1.62  T=1.13 s (134.1 files/s, 9764.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Perl                           149           2795           1425           6382
JSON                             1              0              0            270
YAML                             2              0              0            198
-------------------------------------------------------------------------------
SUM:                           152           2795           1425           6850
-------------------------------------------------------------------------------
代替案
コマンドを手動で実行する
シェルスクリプトの保存とインストールを行いたくない場合は、コマンドを手動で実行できます。例:
$ git clone --depth 1 https://github.com/evalEmpire/perl5i.git
$ cloc perl5i
$ rm -rf perl5i
言語学者
結果をGitHubの言語パーセンテージと正確に一致させたい場合は、CLOCの代わりにLinguistをインストールしてみてください。READMEによると、実行してから実行する必要があります。動作しませんでした(問題#2223)。gem install linguistlinguist