トップ «前の日記(2007-12-15) 最新 次の日記(2007-12-19)» 編集

Route 477



2007-12-18

[prog] 非プログラマーの人に「Haskellって来てるの?」と聞かれたので

「Blu-rayみたいなものです」と答えておいた。先進的だけど、流行るかどうかはまだ分からんということで。

[softs] いちいち「svk なんちゃら」って打つのが面倒な人のためのSVKシェル

svk使ってると「svk st」→「svk di」→「svk ci ファイル名 -m ほげほげ」とかよくやるんですが、 「svk」の部分がDRYじゃないと思ったので超簡易SVKシェルを作ってみましたよ。

(1/24追記:いろいろ機能強化したものをReposhとして公開しています)

使用例。

C:\proj\_3svk>./svksh.rb
Welcome to svk shell
svk > st
M   todo.hd
?   .svksh.rb.swp
?   _webscheme_lib.js
?   svksh.rb
svk > 

コマンド名を入れると、それをそのままsvkに渡して実行します。終了はexitとかquitとか^D/^Zなどお好みで。

何も入力せずにEnterを押すとstatusが表示されます。

なんとファイル名のタブ補完が使えます!!readlineは神。

以下ソース。

require 'readline'

SVK = "c:/prog/svk/bin/svk.bat"
PROMPT = "svk > "

puts "Welcome to svk shell"
loop do
  cmd = Readline.readline(PROMPT, true)
  cmd = "status" if cmd == ""

  case cmd
  when "reload"
    load __FILE__
  when nil, "exit", "quit"
    puts ""
    exit
  else
    system "#{SVK} #{cmd}"
  end
end

「svk」を「hg」に置換すると Mercurialシェルとしても使えます(笑)