rubyのexerbにD&DでFTPアップロード

4月 21st, 2009 admin Posted in Ruby |

exerbを使ってファイルをドラッグアンドドロップしたらあらかじめ指定したディレクトリにFTPでアップロードするスクリプト。

コード

put.rb

RUBY:
  1. require 'yaml'
  2. require 'net/ftp'
  3.  
  4. config = "config.yaml"
  5. if defined? ExerbRuntime
  6.   config = File.expand_path(config, File.dirname(ExerbRuntime.filepath))
  7. end
  8. config = YAML.load(File.read(config))
  9.  
  10.  
  11. ftp = Net::FTP.new(config['host'],config['user'],config['passwd'])
  12. ftp.binary = true
  13. ftp.chdir(config['dir_name'])
  14. ftp.passive = true if config['passive'] == 1
  15.  
  16. ARGV.each do |filename|
  17.   begin
  18.     ftp.put(filename,File.basename(filename))
  19.   rescue => e
  20.     puts "ERROR: #{e}skip #{filename}"
  21.   end
  22. end

config.yaml

CODE:
  1. host: example.com
  2. user: xxxx
  3. passwd: yyyy
  4. passive: 1
  5. dir_name: /aaa/bbb

exerbの使い方

exerbをインストールしたら

CODE:
  1. #レシピファイルの作成
  2. >ruby -r exerb/mkexy put.rb
  3. #exeファイルの作成
  4. >exerb put.exy

ポイント

・exerbで自分自身のファイル名はExerbRuntime.filepathで取得する必要がある
・exerbでドラッグアンドドロップされたファイル名は普通にARGVに入る

参考サイト

net/ftp - Rubyリファレンスマニュアル
Greenbear Diary - RubyText 0.1 , Exerb化したexeの置かれているパスを取得する
ドラッグアンドドロップしたファイルをeuc-jpに変換するRubyスクリプト - 今日は長閑にtamago_girai
Exerb Project
FTPからのダウンロード - みずぴー日記

Leave a Reply