lib/smartcloud/grids/buildpacker.rb in smartcloud-0.0.170 vs lib/smartcloud/grids/buildpacker.rb in smartcloud-0.0.171

- old
+ new

@@ -5,50 +5,74 @@ class Buildpacker < Smartcloud::Base def initialize end def pack - logger.formatter = proc do |severity, datetime, progname, message| - "\t\t\t------> #{severity}: #{message}\n" - end + set_logger_formatter_arrow pack_rails if File.exist? "bin/rails" - logger.info "Could not continue ... Launch Failed." + logger.info "Could not continue ... Launch Failed." logger.formatter = nil + exit 1 end def pack_rails - # Remove server.pid if it exists - FileUtils.rm("tmp/pids/server.pid") if File.exist? "tmp/pids/server.pid" + return unless bundle_install? + return unless precompile_assets? + return unless start_web_server? - # Perform bundle install + exit 0 + end + + # Perform bundle install + def bundle_install? logger.info "Performing bundle install ..." - logger.formatter = proc do |severity, datetime, progname, message| - "\t\t\t\t#{message}" + set_logger_formatter_tabs + Open3.popen2("bundle", "install", "--deployment", "--clean") do |stdin, stdout_and_stderr, wait_thr| + stdout_and_stderr.each { |line| logger.info "#{line}" } + return true if wait_thr.value.success? end - exit_status = nil - Open3.popen2("bundle", "install", "--deployment", "--clean") do |stdin, stdout_andstderr, wait_thr| - stdout_andstderr.each do |line| - logger.info "#{line}" - end - exit_status = wait_thr.value + set_logger_formatter_arrow + logger.error "Could not complete bundle install. Please check if your Gemfile.lock is upto date." + return false + end + + # Perform pre-compiling of assets + def precompile_assets? + logger.info "Installing Javascript dependencies & pre-compiling assets ..." + set_logger_formatter_tabs + Open3.popen2("bundle", "exec", "rails", "assets:precompile") do |stdin, stdout_and_stderr, wait_thr| + stdout_and_stderr.each { |line| logger.info "#{line}" } + return true if wait_thr.value.success? end + set_logger_formatter_arrow + logger.error "Could not install Javascript dependencies or pre-compile assets." + return false + end + + # Perform starting of web server + def start_web_server? + logger.debug "Starting Web Server ..." - if exit_status.success? - logger.error "Could not complete bundle install." - end + # Remove server.pid if it exists + FileUtils.rm("tmp/pids/server.pid") if File.exist? "tmp/pids/server.pid" - # if system("bundle install --deployment --clean") - # logger.info "Installing Javascript Dependencies & Pre-compiling Assets ..." - # if system("bundle exec rails assets:precompile", out: File::NULL) - # logger.debug "Starting Server ..." - # if system("god -c Godfile -D") - # logger.info "Launched Application ... Success." - # end - # # exit 0 - # end + # if system("god -c Godfile -D") + logger.info "Launched Application ... Success." # end + end + + def set_logger_formatter_arrow + logger.formatter = proc do |severity, datetime, progname, message| + "\t\t\t------> #{severity}: #{message}\n" + end + end + + def set_logger_formatter_tabs + logger.formatter = proc do |severity, datetime, progname, message| + "\t\t\t\t#{message}" + end end end end end