require 'dotenv/load' task 'server' do require_relative './web/server' VLVSearch.run! end task 'migrate' do require_relative './db/migrate' migrate end task 'migrate_test' do require_relative './db/migrate' TEST_DB = Sequel.connect( adapter: :postgres, database: ENV['DB_DATABASE'] + '_test', user: ENV['DB_USERNAME'], password: ENV['DB_PASSWORD'], logger: ENV['APP_ENV'] == 'development' ? Logger.new('db/log') : nil ) migrate(db: TEST_DB) end task 'scrape' do require_relative './db/scraper' should_log = ENV['APP_ENV'] == 'development' || ARGV.include?('--log') scraper = Scraper.new(log: should_log) scraper.scrape end task 'build' do require 'sassc' unless Dir.exist?('./web/public') puts 'Creating web/public/' Dir.mkdir('./web/public') end scss = File.read('./web/assets/style.scss') css = SassC::Engine.new(scss, style: :compressed).render puts 'Writing web/public/style.css' File.write('./web/public/style.css', css) js = File.read('./web/assets/script.js') puts 'Writing web/public/script.js' File.write('./web/public/script.js', js) end task 'deploy' do username = ENV['PROD_USERNAME'] hostname = ENV['PROD_HOSTNAME'] puts `rsync -rv ./db/*.rb #{username}@#{hostname}:/var/www/vlv-search/` puts `rsync -rv ./lib #{username}@#{hostname}:/var/www/vlv-search/` puts `rsync -rv ./web #{username}@#{hostname}:/var/www/vlv-search/` puts `rsync -rv ./Rakefile #{username}@#{hostname}:/var/www/vlv-search/` puts `rsync -rv ./Gemfile #{username}@#{hostname}:/var/www/vlv-search/` puts `rsync -rv ./Gemfile.lock #{username}@#{hostname}:/var/www/vlv-search/` puts `ssh -t #{username}@#{hostname} 'bash -ic ". .profile; cd /var/www/vlv-search; rake build;"'` puts `ssh -t #{username}@#{hostname} 'bash -ic ". .profile; ~/restart-unicorn"'` end