APP zip package placed in lib now can be unzip into vendor

APP zip package placed in lib now can be unzip into vendor,however
server can not restart
This commit is contained in:
Matthew Fu committed 2011-11-16 15:21:31 +08:00
1 parent c1d77fa6d6
commit 84ebc8306b
82 files changed
+91 -1

No files matched your search

@@ -17,6 +17,12 @@ class Admin::PurchasesController < ApplicationController
redirect_to admin_purchases_url
end
def install_app
unzip_app
redirect_to admin_purchases_url
end
protected
def download_purchase(purchase, url)
@@ -77,6 +83,62 @@ class Admin::PurchasesController < ApplicationController
end
end
def unzip_app
zip_name = "NewBlog"
file = "#{Rails.root}/lib/NewBlog.zip"
destination = "#{Rails.root}/vendor/plugins"
Zip::ZipFile.open(file) do |zip_file|
# encrypted = {}
# ['encrypted_data', 'encrypted_key', 'encrypted_iv'].each do |e|
# encrypted.merge!(e => zip_file.read(e))
# end
# orig_file = decrypt_data(encrypted['encrypted_data'], encrypted['encrypted_key'], encrypted['encrypted_iv'])
orig_file = file
temp_file = Tempfile.new("temp_file_zip")
# debugger
temp_file.binmode
temp_file.write orig_file
temp_file.rewind
# Zip::ZipFile.open(temp_file) { |orig_zip|
app = AppModule.new.from_json(zip_file.read("#{zip_name}/#{zip_name}/#{zip_name}.json"))
zip_file.each { |f|
if (f.to_s=~/^#{zip_name}\/#{zip_name}\/*/)
# debugger
f_path=File.join(destination, f.name.gsub(/^#{zip_name}\//, ''))
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path) unless File.exist?(f_path)
end
}
# unzip_file(file, "#{Rails.root}/vendor/plugins")
# Dir.mktmpdir('f_path') { |dir|
#
# build_file(orig_zip, zip_name, dir)
# build_file(orig_zip, zip_name, dir, design.default_css) if design.default_css
# build_file(orig_zip, zip_name, dir, design.reset_css) if design.reset_css
# ['themes', 'javascripts', 'images'].each do |type|
# design.send(type).each do |object|
# build_file(orig_zip, zip_name, dir, object, type)
# end
# end
# }
# temp_file.close
# temp_file.unlink
# # design.save
# }
end
end
def build_file(orig_zip, zip_name, dir, object, type = nil)
title = object.file_filename
temp = File.new(dir + '/' + title, 'w+')
@@ -85,4 +147,8 @@ class Admin::PurchasesController < ApplicationController
object.to_save = true
end
def unzip_file (file, destination)
end
end