サブディレクトリに一括で処理するスクリプト
あるディレクトリの下にあるサブディレクトリ全てに対して、git pullなどをして回る。
手抜きgit更新スクリプト | GoingMyWayを参考にした(というより必要な部分を抽出した)。
シェルスクリプト
findコマンドで、.gitを持つディレクトリ一覧を、配列として格納する。
あと、for文でeach的な書き方ができるのは知らなかった。
git pullの結果、更新があれば、バイトコンパイルもする。
#!/bin/bsah # 手抜きgit更新スクリプト | GoingMyWay # http://goingmyway.net/?p=632 _GITDIRS=`find . -type d -name ".git" | sed "s/\(\.\/.*\)\/.git/\1/g"` for _DIRS in ${_GITDIRS}; do echo -e "\n-- ${_DIRS} --" cd $_DIRS _PULL=`git pull` echo $_PULL if [ "${_PULL}" != "Already up-to-date." ]; then rm -f *.elc emacs -batch -f batch-byte-compile *.el fi cd ../ done
応用
同じようにして、サブディレクトリをバイトコンパイルして回るスクリプトも作ってみた。
#!/bin/sh _LISPDIRS=`find . -maxdepth 1 -mindepth 1 -type d` for _DIRS in ${_LISPDIRS}; do echo -e "\n-- ${_DIRS} --" cd $_DIRS rm -f *.elc emacs -batch -f batch-byte-compile *.el cd ../ done