lib/tasks/knitkit_tasks.rake in knitkit-3.0.0 vs lib/tasks/knitkit_tasks.rake in knitkit-3.2.0
- old
+ new
@@ -1,4 +1,89 @@
-# desc "Explaining what the task does"
-# task :knitkit do
-# # Task goes here
-# end
+require 'fileutils'
+
+namespace :knitkit do
+ namespace :website do
+
+ desc 'Import Knitkit website'
+ task :import, [:website_iid, :username, :export_path] => :environment do |t, args|
+ website = Website.find_by_internal_identifier(args[:website_iid])
+ user = User.find_by_username(args[:username])
+
+ if !website and user
+
+ puts 'Starting Import...'
+ file = ActionDispatch::Http::UploadedFile.new(
+ tempfile: File.open(args[:export_path]),
+ filename: File.basename(args[:export_path])
+ )
+ Website.import(file, user)
+ puts 'Import Complete'
+
+ else
+ puts "Website already exists, please delete first" if website
+ puts "Could not find user" unless user
+ end
+ end
+
+ desc 'Export knitkit website'
+ task :export, [:website_iid, :export_path] => :environment do |t, args|
+ website = Website.find_by_internal_identifier(args[:website_iid])
+
+ if website
+
+ puts 'Starting Export...'
+
+ path = website.export
+ FileUtils.mv(path, args[:export_path])
+
+ puts 'Export Complete'
+
+ else
+ puts "Could not find website"
+ end
+ end
+
+ end
+
+ namespace :theme do
+
+ desc 'Import Knitkit theme'
+ task :import, [:website_iid, :export_path] => :environment do |t, args|
+ website = Website.find_by_internal_identifier(args[:website_iid])
+
+ if website
+
+ puts 'Starting Import...'
+ file = ActionDispatch::Http::UploadedFile.new(
+ tempfile: File.open(args[:export_path]),
+ filename: File.basename(args[:export_path])
+ )
+ Theme.import(file, website)
+ puts 'Import Complete'
+
+ else
+ puts "Website doesn't exists"
+ end
+ end
+
+ desc 'Export knitkit theme'
+ task :export, [:website_iid, :theme_id, :export_path] => :environment do |t, args|
+ website = Website.find_by_internal_identifier(args[:website_iid])
+ theme = website.themes.find_by_theme_id(args[:theme_id])
+
+ if website && theme
+
+ puts 'Starting Export...'
+
+ path = theme.export
+ FileUtils.mv(path, args[:export_path])
+
+ puts 'Export Complete'
+
+ else
+ puts "Could not find website" unless website
+ puts "Could not find theme" unless theme
+ end
+ end
+
+ end
+end