git statusで変更があるファイルに対してEslintなどを実行する

1 min read

コード

git status -s | awk '/^ M/{print $2}' | xargs -r npx eslint --fix

git status -sで変更があるファイルの一覧を取得し、awk '/^ M/{print $2}'で変更があるファイルのパスだけを取り出して、xargs -r npx eslint --fixでEslintの--fixを実行する。

変更があるファイルの一覧

git status-sオプションをつけると、変更があるファイルの一覧が短縮されて表示される。

 M src/components/Button/index.tsx
 M src/components/UI/Layout/Sidebar.tsx
 M src/pages/index.page.tsx

ファイル一覧を整える

先頭のMが邪魔なので削除する。awk '/^ M/{print $2}'で取得したファイル一覧を整える。

src/components/Button/index.tsx
src/components/UI/Layout/Sidebar.tsx
src/pages/index.page.tsx

Eslint --fixを実行

ファイル一覧をxargsで渡して、xargs -r npx eslint --fixでESLintの--fixを実行する。
xargs-rオプションは、標準入力が空の場合にコマンドを実行しないようにするオプション。

xargs -r npx eslint --fix

npx eslintだけではなくstylelintprettierなどのツールにも同じように適用できる。