115 lines
4.5 KiB
Ruby
115 lines
4.5 KiB
Ruby
# encoding: utf-8
|
|
require 'erb'
|
|
|
|
namespace :site do
|
|
|
|
task :build => :environment do
|
|
Site.destroy_all
|
|
Purchase.destroy_all
|
|
|
|
Site.create( :school => 'RulingDigital University', :department => 'Computer Science', :valid_locales => [ 'en', 'zh_tw' ], :in_use_locales => [ 'zh_tw', 'en' ])
|
|
User.create!(:email=>'chris@rulingcom.com',:admin=>true,:user_id=>'chris',:password=>'password')
|
|
`mongo #{Mongoid.config.database.name} --eval "db.fs.chunks.ensureIndex({files_id: 1, n: 1})"`
|
|
|
|
puts "Congres you can now login within url"
|
|
puts 'Please upload design package (/admin/designs/upload_package ) and run rake site:necessary_data'
|
|
I18nVariable.create!( :document_class => 'language', :key => 'en', :en => 'English', :zh_tw => '英文' )
|
|
I18nVariable.create!( :document_class => 'language', :key => 'zh_tw', :en => 'Chinese', :zh_tw => '中文' )
|
|
Info.create!(key: "profile", built_in: true, disabled: false, title: {"zh_tw"=>"基本欄位", "en"=>"Basic Info"}, to_search: false)
|
|
end
|
|
|
|
task :create_logrotate => :environment do #Can remove after all products update
|
|
create_rulingcom_logrotate
|
|
end
|
|
|
|
task :necessary_data => :environment do
|
|
auto_setting
|
|
site = Site.first
|
|
site.update_attribute(:title,'RulingOrbit Demo Site')
|
|
site.update_attribute(:resque_namespace,@resque_namespace)
|
|
|
|
# home_trans = I18nVariable.create!( :document_class => 'Home', :key => 'home', :en => 'Homepage', :zh_tw => '首頁')
|
|
design = Design.first
|
|
site.design = design
|
|
site.save
|
|
theme = design.themes.first
|
|
home = Page.new( :design_id => design.id, :name => 'home', :is_published => true, :theme_id => theme.id )
|
|
|
|
home.title_translations = {"zh_tw"=>"首頁", "en"=>"Home"}
|
|
home.save
|
|
|
|
puts "Rember to restart server after you setup all sites for starting God"
|
|
end
|
|
|
|
task :start_auto_setting => :environment do
|
|
auto_setting
|
|
end
|
|
|
|
def auto_setting
|
|
puts "Enter your resque namespace[Orbit]:......"
|
|
@resque_namespace = STDIN.gets.gsub("\n",'')
|
|
@resque_namespace = APP_CONFIG['orbit'] if @resque_namespace.empty?
|
|
|
|
|
|
puts "Is this the only site [ Entry site? ] on this mechine?[Default No]:......"
|
|
site_is_alone = false
|
|
site_is_alone = STDIN.gets.gsub("\n",'')
|
|
site_is_alone = true if site_is_alone.downcase == 'yes'
|
|
|
|
puts "Is this a primary site?[Default No]:......"
|
|
site_is_primary = false
|
|
site_is_primary = STDIN.gets.gsub("\n",'')
|
|
site_is_primary = true if site_is_primary.downcase == 'yes'
|
|
|
|
puts "Traffic heavy?[Default No]:......"
|
|
traffic_heavy = false
|
|
traffic_heavy = STDIN.gets.gsub("\n",'')
|
|
traffic_heavy = true if site_is_primary.downcase == 'yes'
|
|
|
|
@traffic_rate = traffic_heavy ? 2 : 1
|
|
|
|
if site_is_alone
|
|
@resque_workers = 5 * @traffic_rate #Entry Site
|
|
else
|
|
if site_is_primary
|
|
@resque_workers = 2 * @traffic_rate #Primary Site
|
|
else
|
|
@resque_workers = 1 * @traffic_rate #Secondary Site
|
|
end
|
|
end
|
|
|
|
resque_setting = ERB.new(File.new("lib/template/setting/resque.god.erb").read)
|
|
File.open("config/resque.god", 'w') { |file| file.write(resque_setting.result) }
|
|
|
|
resque_schedule_setting = ERB.new(File.new("lib/template/setting/resque_schedule.god.erb").read)
|
|
File.open("config/resque_schedule.god", 'w') { |file| file.write(resque_schedule_setting.result) }
|
|
|
|
if site_is_primary
|
|
solr_setting = ERB.new(File.new("lib/template/setting/solr.god.erb").read)
|
|
File.open("config/solr.god", 'w') { |file| file.write(solr_setting.result) }
|
|
create_rulingcom_logrotate
|
|
end
|
|
end
|
|
|
|
|
|
def create_rulingcom_logrotate
|
|
`sudo mkdir -p /var/log/rulingcom` unless File.directory? "/var/log/rulingcom"
|
|
@project_folder = ENV["PWD"]
|
|
puts "Is your Orbit folder: #{@project_folder} (If YES => Press enter,or enter your path)"
|
|
user_enter_project_folder = STDIN.gets.gsub("\n",'')
|
|
@project_folder = user_enter_project_folder unless user_enter_project_folder.empty?
|
|
|
|
@user_home_folder = ENV["HOME"]
|
|
puts "Is your Home folder: #{@user_home_folder} (If YES => Press enter,or enter your path)"
|
|
user_enter_home_folder = STDIN.gets.gsub("\n",'')
|
|
@user_home_folder = user_enter_home_folder unless user_enter_home_folder.empty?
|
|
|
|
logrotate_setting = ERB.new(File.new("lib/template/setting/rulingcom_log.erb").read)
|
|
File.open("#{@project_loc}/tmp/logrotate_setting", 'w') { |file| file.write(logrotate_setting.result) }
|
|
|
|
`sudo cp #{@project_loc}/tmp/logrotate_setting /etc/logrotate.d/rulingcom`
|
|
`logrotate -v -f /etc/logrotate.conf`
|
|
end
|
|
|
|
end
|