前言
當前的項目配置了 CI
流程,每次提交代碼後都會觸發代碼規範檢查。
當前項目使用 Python
開發,代碼檢查自然就是基於flake8
了。
許多時候修改了代碼後,都會懶得在本地對修改的文件手動執行下 flake8
。一個個複製文件名,不想,不願意。然後提交代碼後 CI
機器人就會報規範提醒,膈應。
所以就設置了個命令縮寫來處理這種問題。在這裏記錄下,也方便有同樣需要的同志。
命令
具體的命令:git status --porcelain | awk '{print $2}' | xargs flake8
使用方法:
- 安裝
flake8
:pip install flake8
- 在項目根目錄下執行該語句
解釋
這個命令一共由三個部分組成。
實際上就是通過 git
命令拿到本次修改或新增的文件,然後通過 awk
精準拿到對應的文件名,最後通過 xargs
將文件名轉化爲命令行參數傳遞給 flake8
處理。
下面分別簡單說下。
git
git status --porcelain
用於返回簡略模式的修改信息。具體可見下圖。
M
代表該文件被修改了。 ??
代表該文件是新建的。
awk
awk '{print $2}'
輸出每行中被空格分隔出的第二個字段。具體可見下圖。
在上圖中就是 .gitignore
、run.py
、test.py
。
xargs
xargs flake8
將 awk
的輸出轉化爲命令行參數傳遞給 flake8
。
如果想知道實際執行的命令,可以將這裏替換爲 xargs -t flake8
。這樣就會打印出每個被執行的命令。具體可見下圖。紅框中爲實際執行的命令。