Grails開発に便利なタブ状態でscreenを起動するスクリプト
やったーー!!ついにスクリプトバージョンができた!!!
今までは、開いたscreenの画面にコピペで強引にコマンド群を貼り付ける、って方法でしか実現できてなかったけど、これなら単にシェルスクリプトを実行するだけで、あら不思議すてきなタブ状態のscreenがそのまま開けます。
というか、cygwin版ですでにこんなやつ一回試してたんだけど、cygwin上の今使ってるscreenだと、-d -m オプションでscreen起動すると、Ctrl+Hの挙動がおかしくなったり(一発で行頭まで削除になってしまう)、最後のscreen -rでフリーズしたりしてあきらめたんだよね・・・。
MacOSXでは問題なくそのまま動いてかなり感動。
つか、新しいまくぶく、はえぇ。すごく・・・、速いです・・。
ってわけで、MacOSXでのみ動作確認済みです。
#!/bin/sh # Grails開発に便利なscreenのタブ状態にする # 引数 if [ ! -d "$1" ] || [ ! -d "$1/grails-app/" ] then echo "usage: `basename $0` <PROJECT_HOME>" exit 1 fi # 絶対パス展開はとりあえずrubyを借りた。 # シェルに閉じたうまい方法ないかな−。でも、if文はだるい。 PROJECT_HOME=`ruby -e "puts File.expand_path('$1')"` # screenでタブを開いていく cd $PROJECT_HOME screen -d -m -t run screen -X screen -t top screen -X chdir $PROJECT_HOME/grails-app/controllers screen -X screen -t controllers screen -X chdir $PROJECT_HOME/grails-app/services screen -X screen -t services screen -X chdir $PROJECT_HOME/grails-app/domain screen -X screen -t domain screen -X chdir $PROJECT_HOME/grails-app/utils screen -X screen -t utils screen -X chdir $PROJECT_HOME/grails-app/i18n screen -X screen -t i18n screen -X chdir $PROJECT_HOME/grails-app/views screen -X screen -t views screen -X chdir $PROJECT_HOME/web-app/css screen -X screen -t css screen -X chdir $PROJECT_HOME/web-app/js screen -X screen -t js screen -X chdir $PROJECT_HOME/test screen -X screen -t test screen -X chdir $PROJECT_HOME screen -X screen -t postgres screen -X select postgres # 手動でDBに接続する screen -r
こんな感じ。
confも開きたいとか、自由にカスタマイズして使うべし。
あ、そうそう。
このバージョンだと、デタッチ状態のscreenプロセスが存在してる場合には対応してません。
if文でチェックするとかしてもいいけど、めんどいのでここまで。
10/29 追記
うわぁ・・・
cygwin上の今使ってるscreenだと、-d -m オプションでscreen起動すると、
これ再現してたよ・・・。orz
mac版でもだめか。なんでだろ。
このままだとつかえんなぁ。
10/30 追記
うは!!
8.6.28.3 screen セッションでのバックスペースと Ctrl-H
screen を起動中にバックスペースや Ctrl-H が動かないことに気づいた場合、 /etc/screenrc を編集し、次の行を見つけたらコメントアウトしてください。(すなわち、この行の先頭に "#" を追加してください)
bindkey -k kb stuff "\177"
なんか悪者扱いされてるみたいだったけど、だめもとで上の1行を.screenrcに追加したら、むしろきちんとCtrl-Hがきくようになったんだぜ?
いやっほう!
2009/02/04 追記
とある環境で、この最後の bindkey 設定を追加すると、代わりにvimのバックスペースが ^? なことになってしまいました。
ググってみたら、これは比較的メジャーな話だったので、.vimrcにmap設定を追加して、さくっと修正完了。
" ------------------- " Backspace問題対策 " (.screenrcで、'bindkey -k kb stuff "177"'と書いたら、 " vimのBackspaceが^?となるようになってしまった件の対策) " ------------------- noremap ^? ^H noremap! ^? ^H
やはり、この方法は楽でいいなぁ。