# 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 traffic_heavy.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