ruby-unison を使う
ファイル同期に使うコマンド unison の Ruby インターフェイスを作った。 ruby-unison は、unison.rb の中でクラス UnisonCommand を定義している。
インストール
gem install ruby-unison
使用例
基本的な使い方
require 'unison'
uc = UnisonCommand.new("pref", "root1", "root2")
uc.execute
uc = UnisonCommand.new("root1", "root2")
uc.execute
実際には実行しない
require 'unison'
uc = UnisonCommand.new("pref", "root1", "root2")
uc.execute(true)
unison のオプションを指定する
unison コマンドのオプションはハイフンを除いてシンボルにして Hash で与える。 真偽値を与えるものは true か false を指定し、複数の値をとるものは文字列の配列で 指定する。
require 'unison'
uc = UnisonCommand.new("root1", "root2", :force => "root2", :path => ["Document", "Desktop"], :auto => true)
uc.execute
unison コマンドのパスを変更する
require 'unison'
uc = UnisonCommand.new("root1", "root2")
uc.command = "/path/to/unison"
uc.execute
実装
Hash で与えられたオプションをチェックして、 Kernel.system で unison を実行しているだけ。 私自身が使わないオプションについては、 解釈が間違っているかも。
注意としては、シェルを通して実行していないのでホームディレクトリを「~」 で指定することはできない。 File.expand_path などで絶対パスに変更する必要がある。