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