class ExtremeFeedbackDevice::CLI
Constants
- DEFAULT_MODE
- DEFAULT_NAMESPACE
- DEFAULT_PID
- DEFAULT_SETTINGS
Attributes
opts[R]
pid_file[R]
Public Class Methods
instance()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 12 def instance @instance ||= new end
new()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 19 def initialize @opts = ::GetoptLong.new( [ '--help', '-h', ::GetoptLong::NO_ARGUMENT ], [ '--mode', '-m', ::GetoptLong::REQUIRED_ARGUMENT ], [ '--namespace', '-n', ::GetoptLong::REQUIRED_ARGUMENT ], [ '--pid', '-p', ::GetoptLong::REQUIRED_ARGUMENT ], [ '--settings', '-s', ::GetoptLong::REQUIRED_ARGUMENT ], [ '--version', '-v', ::GetoptLong::NO_ARGUMENT ] ) end
Public Instance Methods
main()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 46 def main parse_opts! if argv.length > 0 puts_help exit -1 else @pid_file = PidFile.new(piddir: File.expand_path(pid_dir), pidfile: pid_name) ExtremeFeedbackDevice::Settings.source(File.expand_path(settings)) ExtremeFeedbackDevice::Settings.namespace(namespace) ExtremeFeedbackDevice::Settings.reload! if mode =~ /^run$/i ExtremeFeedbackDevice.run exit 0 elsif mode =~ /^loop$/i ExtremeFeedbackDevice.infinite_loop exit 0 else puts_help exit -1 end end end
mode()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 30 def mode @mode || DEFAULT_MODE end
namespace()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 34 def namespace @namespace || DEFAULT_NAMESPACE end
pid()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 38 def pid @pid || DEFAULT_PID # File.expand_path(@pid || DEFAULT_PID) end
settings()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 42 def settings @settings || DEFAULT_SETTINGS # File.expand_path(@settings || DEFAULT_SETTINGS) end
Private Instance Methods
argv()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 74 def argv ARGV end
parse_opts!()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 86 def parse_opts! begin opts.each do |opt, arg| case opt when '--help' puts_help exit 0 when '--mode' @mode = arg when '--namespace' @namespace = arg when '--pid' @pid = arg when '--settings' @settings = arg when '--version' puts_version exit 0 end end rescue ::GetoptLong::Error => error puts # linebreak puts_help exit -1 end end
pid_dir()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 78 def pid_dir File.dirname(pid) end
pid_name()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 82 def pid_name File.basename(pid) end
puts_help()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 113 def puts_help puts <<-EOS extreme_feedback_device [OPTION] ... -h, --help: \tshow help. -m, --mode [#{DEFAULT_MODE}]: \tset mode 'run' for a single run or 'loop' for infinite loop. -n, --namespace [#{DEFAULT_NAMESPACE}]: \tsettings namespace. -p, --pid [#{DEFAULT_PID}]: \tpid file. -s, --settings [#{DEFAULT_SETTINGS}]: \tsettings file. -v, --version: \tshow version. EOS end
puts_version()
click to toggle source
# File lib/extreme_feedback_device/cli.rb, line 138 def puts_version puts <<-EOS extreme_feedback_device v#{ExtremeFeedbackDevice::VERSION} EOS end