lib/kalipso/cli.rb in kalipso-0.1.5 vs lib/kalipso/cli.rb in kalipso-0.1.6
- old
+ new
@@ -65,10 +65,27 @@
local_site = Site::Local.find_or_create_by_id(site.id)
local_site.update_attributes(site.attributes)
end
end
+ desc "fetch", "download a site and link to to a directory"
+ def fetch(name)
+ site = Site::Remote.find_by_name(name)
+ if site.present?
+ puts "fetching #{site.name}"
+ local_site = Site::Local.find_or_create_by_id(site.id)
+ path = File.expand_path("~/Sites/oncalypso/#{name}")
+ pathname = Pathname.new(path)
+ pathname.mkpath unless pathname.exist?
+ local_site.update_attributes(site.attributes.merge(:path => path))
+ `rsync -arvH -e "ssh -i #{Jaysus::Local.store_dir.join('keys', 'id_rsa')}" sites@diddlydum.com:/home/sites/#{site.name}/ #{path.gsub(/\/+$/, '')}/`
+ puts "Site #{name} downloaded to #{path.gsub(/\/+$/, '')}"
+ else
+ "Site #{name} not found. Maybe try 'kalipso sync'"
+ end
+ end
+
desc "upload", "upload a path, eg. kalipso upload SITENAME PATH"
def upload(name = nil)
if name.present?
puts "uploading #{name}"
site = Site::Local.find_by_name(name)
@@ -79,10 +96,11 @@
end
if site.present?
puts "uploading #{name} from #{path}"
if site.path.present?
puts "uploading #{site.path} to #{site.name}.oncalypso.com"
- `rsync -arvH #{site.path.gsub(/\/+$/, '')}/ sites@diddlydum.com:/home/sites/#{site.name}`
+ command = %Q[rsync -arvH -e "ssh -i #{Jaysus::Local.store_dir.join('keys', 'id_rsa')}" #{site.path.gsub(/\/+$/, '')}/ sites@diddlydum.com:/home/sites/#{site.name}]
+ `#{command}`
puts "#{site.path} uploaded to http://#{site.name}.oncalypso.com"
else
puts "You need to link this site first"
end
else
\ No newline at end of file