設定ファイル
昨日、うっかりMacbook Airをポチっとしてしまった。
そのせいで、僕所有のmacが二台になってしまうことに気づいた。
二台になると困る。
困るのが、設定ファイルだ。
.zshrcとか.emac.dだとか、もろもろ設定したものが二重管理になる。
そういうのは嫌なので、僕には個人の非公開リポジトリがあって
そこで一括管理しているんだが、管理方法としては、
configs/vimrc configs/screenrc
みたいに、configsというディレクトリの中に、vimrcを入れているだけだ。
これだと、設定ファイルをいっこいっこコピーして
自分の~/.vimrcみたいのを作んないと行けなそうだ。
それはメンドクサイし、一台で設定を変えたら、
その設定をもう一台で有効にするのが面倒くさすぎる。
そこで、こんな感じで ~/.vimrc -> ~/configs/vimrc
symlinkを作れば良いんだけど、
いくつか設定ファイルがあるとやっぱり面倒だ。
そこで、初期化シェルを書いてみた。
#!/bin/sh CONFIGS=( screenrc vim vimrc zshenv zshrc emacs.d gitconfig ) COMMAND='ln -s' CURRENT_DIR=`pwd` for FILE in "${CONFIGS[@]}";do TO="${CURRENT_DIR}/${FILE}" FROM="$HOME/.${FILE}" EXEC_STRING="${COMMAND} ${TO} ${FROM}" if [ -f ${FROM} ] || [ -d ${FROM} ] || [ -e ${FROM} ] ;then echo "Error: '${FROM}' already exists." >&2 continue fi if !([ -f ${TO} ] || [ -d ${TO} ]) ;then echo "Error: A source '${TO}' does not exist." >&2 continue fi `${EXEC_STRING}` if !([ -e ${FROM} ]) ;then echo "Error: Command '${EXEC_STRING}' failed." >&2 continue fi echo "Success: Created a symlink '${FROM}'." done exit 0
このスクリプト自体も、設定ファイルと同じディレクトリに入れておいて、リポジトリに上げちゃう。
新しいmacが届いたら、実行してやるという寸法です。
みんなはどうやって管理しているんだろう?
なんかもっといい方法あれば教えてください。
以下、備忘録
IFSとか完全に忘れていた。結局使わなかったが。。。。