Directory

如何使用 cloc 在 debian 包中查找程式碼行

  • March 8, 2019

cloc - 統計程式碼行數的實用程序

現在手冊頁提到它可以用來計算 tarball 的程式碼行數

cloc perl-5.10.0.tar.gz

現在一個 debian 包就像一個壓縮的 tarball。有沒有辦法使用 cloc.

我試過 :-

[$] cloc cloc_1.60-1.1_all.deb                                                                                                    
      0 text files.
      0 unique files.                              
      1 file ignored.

輸出不正確。我試圖查看 debian 包中有多少文件並看到:-

[$] dpkg -L cloc                                                                                                                
/.
/usr
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/cloc.1.gz
/usr/share/doc
/usr/share/doc/cloc
/usr/share/doc/cloc/changelog.Debian.gz
/usr/share/doc/cloc/changelog.gz
/usr/share/doc/cloc/copyright
/usr/bin
/usr/bin/cloc

所以要麼是 cloc 中的錯誤,要麼我沒有正確應用它。作為記錄,我已經下載了 cloc 的 debian 包以用作範例(因為它很小)。

[$] ls -lh cloc_1.60-1.1_all.deb                                                                                             
-rw-r--r-- 1 shirish shirish 88K Jul 24  2015 cloc_1.60-1.1_all.deb

期待答案。

您需要cloc在源包上執行,而不是在二進制包上執行——cloc_1.60-1.1_all.deb是二進制包。

這有效:

dget -d http://httpredir.debian.org/debian/pool/main/c/cloc/cloc_1.60-1.1.dsc
cloc cloc_1.60.orig.tar.gz

並顯示

     12 text files.
      7 unique files.                              
      9 files ignored.

http://cloc.sourceforge.net v 1.60  T=0.05 s (57.3 files/s, 176957.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Perl                             2            666            978           7477
make                             1             26             35             75
-------------------------------------------------------------------------------
SUM:                             3            692           1013           7552
-------------------------------------------------------------------------------

dget通過給定的描述符下載源包,並-d告訴它不要提取源。您會dgetdevscripts包裝中找到。

引用自:https://unix.stackexchange.com/questions/282305