쉘 스크립트 cloc-git
이 셸 스크립트를 사용하면 하나의 명령으로 원격 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
패키지 관리자 (예 : Homebrew ) brew install cloc
와 함께 설치할 수 있습니다 . 도 있습니다 에서 발표 된 고정 표시기 이미지 .mribeiro/cloc
코드를 파일에 저장하고 cloc-git
실행 chmod +x cloc-git
한 다음 파일을와 $PATH
같은 폴더로 이동 하여 스크립트를 설치할 수 있습니다 /usr/local/bin
.
용법
스크립트는 하나의 인수를 취하는데,이 인수 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 linguist
linguist