From a42f802df179ace4948c97c71e0a1071d1478d1d Mon Sep 17 00:00:00 2001 From: Martin Vidner Date: Tue, 25 May 2010 14:21:23 +0200 Subject: [PATCH] + upload, push require rubygems-rake (sh) curl --netrc-optional --ftp-ssl --insecure --- blobec | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/blobec b/blobec index 0f28f64..f907781 100755 --- a/blobec +++ b/blobec @@ -2,12 +2,16 @@ require "pp" #require "uri" -#require "rubygems" +require "rubygems" +require "rake" #require "net/ftp-netrc" command = ARGV[0] filename = ARGV[1] -url = File.new(filename + ".blburl").readline.chomp + +def url_for(filename) + File.new(filename + ".blburl").readline.chomp +end #url_s = ARGV[0] #url = URI.parse url_s @@ -25,23 +29,26 @@ def ruby_upload(url, filename) end def sys(array) - system *array + sh *array +end + +def curl(array) + # insecure sucks. should --cacert help? + sys %w{curl --verbose --netrc-optional --ftp-ssl --insecure} + array end def upload(url, filename) - sys %w{curl -v -n -T} + [filename, url.to_s] + curl ["--upload-file", filename, url.to_s] end def download(url, filename) - sys %w{curl -v -n --remote-time -o} + [filename, url.to_s] + curl %w{--remote-time --output} + [filename, url.to_s] end def timestamp(url, filename) - sys %w{curl -v -n --remote-time --range 0-0 -o} + [filename, url.to_s] + curl %w{--remote-time --range 0-0 --output} + [filename, url.to_s] end -#upload(url, filename) - def mtime(filename) File.new(filename).mtime end @@ -74,10 +81,25 @@ def update(url, filename) merge theirs_fn, mine_fn, filename end +def push(filename) + local = "file://" + File.expand_path(filename) + git = filename + ".git" + sys %w{git clone --bare} + [local, git] + tar = git + ".tar" + sys %w{tar cvf} + [tar, git] + gtg = filename + ".gtg" + sys %w{gpg --encrypt --default-recipient-self --output} + [gtg, tar] + upload url_for(gtg), gtg +end + case command when "up", "update": update(url, filename) when "ci", "checkin": when "st", "status": system "ls -l #{filename}*" +when "upload": + upload(url, filename) +when "push": + push filename end