module Nginxtra::Action

Attributes

ignore_force[RW]

Public Class Methods

new(thor, config) click to toggle source
# File lib/nginxtra/action.rb, line 3
def initialize(thor, config)
  @thor = thor
  @config = config
end

Public Instance Methods

daemon(action, additional_options = nil) click to toggle source

Run a daemon command to start or stop the nginx process.

# File lib/nginxtra/action.rb, line 9
def daemon(action, additional_options = nil)
  action = "#{action} #{additional_options}" if additional_options
  run! "#{sudo}start-stop-daemon --#{action} --quiet --pidfile #{Nginxtra::Config.nginx_pidfile} --exec #{Nginxtra::Config.nginx_executable}"
end

Private Instance Methods

force?() click to toggle source
# File lib/nginxtra/action.rb, line 28
def force?
  return false if Nginxtra::Action.ignore_force
  @thor.options["force"]
end
interactive?() click to toggle source
# File lib/nginxtra/action.rb, line 33
def interactive?
  !non_interactive?
end
non_interactive?() click to toggle source
# File lib/nginxtra/action.rb, line 37
def non_interactive?
  @thor.options["non-interactive"]
end
run!(command) click to toggle source
# File lib/nginxtra/action.rb, line 16
def run!(command)
  @thor.run command
  raise Nginxtra::Error::RunFailed, "The last run command failed" unless $?.success? # rubocop:disable Style/SpecialGlobalVars
end
sudo(force = false) click to toggle source
# File lib/nginxtra/action.rb, line 41
def sudo(force = false)
  "sudo " if (force || (@config && @config.require_root?)) && Process.uid != 0
end
without_force() { || ... } click to toggle source
# File lib/nginxtra/action.rb, line 21
def without_force
  Nginxtra::Action.ignore_force = true
  yield
ensure
  Nginxtra::Action.ignore_force = false
end