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