module OnContainer::Dev::SetupOps

Constants

APP_PATH

Public Instance Methods

app_setup_lock_path() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 10
def app_setup_lock_path; "#{app_temp_path}/setup.lock"; end
app_setup_wait() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 9
def app_setup_wait; ENV.fetch('APP_SETUP_WAIT', '5').to_i; end
app_temp_path() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 8
def app_temp_path; "#{APP_PATH}/tmp"; end
command_might_require_database?() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 46
def command_might_require_database?
  %w[
    rails rspec sidekiq hutch puma rake
  ].include?(ARGV[0])
end
command_requires_setup?() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 40
def command_requires_setup?
  %w[
    rails rspec sidekiq hutch puma rake webpack webpack-dev-server
  ].include?(ARGV[0])
end
lock_setup() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 12
def lock_setup
  system "mkdir -p #{app_temp_path} && touch #{app_setup_lock_path};"
end
on_setup_lock_acquired() { || ... } click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 25
def on_setup_lock_acquired
  wait_setup while File.exist?(app_setup_lock_path)

  lock_setup

  %w[HUP INT QUIT TERM EXIT].each do |signal_string|
    Signal.trap(signal_string) { unlock_setup }
  end

  yield

ensure
  unlock_setup
end
unlock_setup() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 16
def unlock_setup
  system "rm -rf #{app_setup_lock_path}"
end
wait_setup() click to toggle source
# File lib/on_container/dev/setup_ops.rb, line 20
def wait_setup
  puts 'Waiting for app setup to finish...'
  sleep app_setup_wait
end