summaryrefslogtreecommitdiff
path: root/rake_helpers/ftp.rb
diff options
context:
space:
mode:
Diffstat (limited to 'rake_helpers/ftp.rb')
-rw-r--r--rake_helpers/ftp.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/rake_helpers/ftp.rb b/rake_helpers/ftp.rb
new file mode 100644
index 0000000..c1eb98c
--- /dev/null
+++ b/rake_helpers/ftp.rb
@@ -0,0 +1,45 @@
+def prepare_ftp
+ require 'net/ftp'
+ require 'yaml'
+ $username = File.exist?(FTP_YAML) ? YAML.load_file(FTP_YAML)[:username] : 'anonymous'
+end
+
+FTP_YAML = 'ftp.yaml'
+FTP_DOMAIN = 'cycnus.de'
+FTP_CODERAY_DIR = 'public_html/raindark/coderay'
+
+def cYcnus_ftp
+ prepare_ftp
+ Net::FTP.open(FTP_DOMAIN) do |ftp|
+ g 'ftp login, password needed: '
+ ftp.login $username, $stdin.gets
+ 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