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 などで絶対パスに変更する必要がある。

Tags of current page

, , ,