
我写了个脚本,统计了我自己写了多少行代码(纯图一乐)
为什么要做这件事?
老实说,我平时不太在意自己到底写了多少行代码。
一方面是因为这东西真没啥太大参考价值,想刷行数的话,复制粘贴个几千行都不是事;另一方面也是因为谁都知道:代码质量和行数没什么关系。
但有时候,好奇心就是挡不住。
就像你听到别人讲“十万小时定律”的时候,会突然想:
“哎,那我到底练习了多久?”
我写代码已经很多年了,也做了不少项目,大部分都丢在 GitHub 上没怎么管过。突然有天我就想:
“我这几年到底写了多少行代码?”
没什么远大目标,也不是为了攀比,就是想统计一下,纯图一乐。
发现了一个小工具:cloc
为了满足这个好奇心,我去搜了一下有没有能统计代码行数的工具,结果发现了一个叫 cloc
的小东西。
用起来特别方便,直接在命令行跑一下,它就会帮你统计:
- 每种语言用了多少文件;
- 每种语言写了多少代码行;
- 有多少注释行、空白行;
而且输出格式非常清爽,长这样:
1 | ------------------------------------------------------------------------------- |
看着还挺有成就感的(笑)。
但问题是:我的代码都在 GitHub 上
工具虽然好用,但有个问题:
我的代码都放在 GitHub 上,平时根本没下载到本地,如果我想统计,就得先一个个仓库 clone 下来,太麻烦了。
所以我干脆就写了个脚本,把整个流程自动化了。
脚本主要做了三件事:
- 通过 GitHub 官方的
gh
命令获取我账号下的所有仓库; - 把这些仓库一个个同步到本地(已有就 pull,没有就 clone);
- 然后用
cloc
统计整个目录的代码行数,并排除掉构建/依赖目录。
简单说,就是把 GitHub 上的项目都打包带回家,然后用 cloc
数一数。
工具准备(支持 macOS / Ubuntu / Windows)
这个脚本依赖以下几个命令行工具:
-
gh
:GitHub CLI,用于获取仓库列表; -
jq
:命令行 JSON 解析工具,用于处理接口返回的数据; -
cloc
:统计代码行数的小工具; -
git
:当然少不了,用来 clone 仓库。
macOS 安装方法(用 Homebrew):
1 | brew install gh jq cloc git |
Ubuntu / Debian 安装方法:
1 | sudo apt update |
Windows 安装方法(建议用 WSL)
Windows 用户建议安装 WSL(Windows 子系统) 并使用 Ubuntu:
在 PowerShell(管理员)运行:
1
wsl --install
安装完成后打开 Ubuntu;
安装依赖:
1
2sudo apt update
sudo apt install gh jq cloc git
GitHub CLI 登录一次(非常重要)
运行脚本前,请先登录 GitHub CLI:
1 | gh auth login |
它会引导你通过浏览器进行一次性授权。
脚本源码(可以直接用)
1 |
|
运行结果展示
执行脚本后,大概就会看到类似这样的输出结果(我的结果):
1 | ------------------------------------------------------------------------------- |
当然,如果你并不像我一样需要从 GitHub 上同步仓库,那你大可不需要使用我的脚本,只需要在你想要统计的目录下执行 cloc .
就好了
是不是还挺有意思的?
虽然知道这个数字没啥特别实质意义,但看着这些年自己写的几万行代码,有点像翻相册的感觉。
总结一下
-
cloc
是一个小巧但非常实用的代码行数统计工具; - 如果你的项目都放在 GitHub 上,可以配合
gh
做自动化统计; - 虽然代码行数并不重要,但偶尔看看还是挺开心的;
就当是一种和过去的自己打个招呼吧 ——
“嘿,我还在写代码,而且已经写了好多年了。”
- 感谢您的赞赏