summaryrefslogtreecommitdiff
path: root/rake_helpers/ftp.rb
blob: 1127c71ac277d635197ee93e75f064baf0b65bf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
FTP_YAML = File.expand_path(File.join(File.dirname(__FILE__), '..', 'ftp.yaml'))
FTP_DOMAIN = 'cycnus.de'
FTP_CODERAY_DIR = 'public_html/raindark/coderay'

def prepare_ftp
  require 'net/ftp'
  require 'yaml'
  $username = File.exist?(FTP_YAML) ? YAML.load_file(FTP_YAML)[:username] : 'anonymous'
  g "ftp login, password for #$username needed: "
  $password = $stdin.gets.chomp
end

def cYcnus_ftp
  prepare_ftp unless $password
  Net::FTP.open(FTP_DOMAIN) do |ftp|
    g "login for #$username..."
    ftp.login $username, $password
    gn 'logged in.'
    yield ftp
  end
end

def uploader_for ftp
  proc do |l, *r|
    r = r.first || l
    raise 'File %s not found!' % l unless File.exist? l
    if l == r
      g 'Uploading %s...' % [l]
    else
      g 'Uploading %s to %s...' % [l, r]
    end
    ftp.putbinaryfile l, r
    gd
  end
end

def g msg
  $stderr.print msg
end

def gn msg = ''
  $stderr.puts msg
end

def gd
  gn 'done.'
end