class Nand::Cli

Public Instance Methods

start(target, *argv) click to toggle source
# File lib/nand/cli.rb, line 29
def start(target, *argv)
  opts = restore_options(options)
  log_debug! if opts[:debug]
  dir = run_dir(opts)
  dir.mkpath unless dir.exist?
  launcher = find_launcher(target, opts, *argv)
  opts[:launcher] = launcher
  daemon = Daemon.new(dir, launcher.execname, opts)
  print "#{daemon.execname} is Start "
  begin
    daemon.run
    sleep 0
    if daemon.running?
      puts "Success [#{daemon.pid}]"
    end
  rescue => e
    puts "Failed [#{e.message}]"
    log.debug "\t" + e.backtrace.join("\n\t")
    exit -1
  end
end
status(target = nil) click to toggle source
# File lib/nand/cli.rb, line 53
def status(target = nil)
  ds = if options[:all]
         Daemon.all_runnings
       else
         Daemon.running_in(run_dir(options), target)
       end
  ds.each do |d|
    puts status_message(d.run_dir, d.execname, d.running?, d.pid, d.user)
  end
  puts status_message(run_dir(options), target, false) if ds.empty? and !target.nil?
end
stop(target = nil) click to toggle source
# File lib/nand/cli.rb, line 67
def stop(target = nil)
  dir = run_dir(options)
  log_debug! if options[:debug]
  ds = if options[:all]
         Daemon.all_runnings
       else
         Daemon.running_in(dir, target)
       end
  ds.each do |d|
    pid = d.pid
    if d.running?
      begin
        print "#{d.execname} is "
        d.stop and puts "Stopped [#{pid}]"
      rescue => e
        puts "Failed [#{e.message}]"
        log.debug "\t" + e.backtrace.join("\n\t")
      end
    else
      puts "#{d.execname} is Not Running"
    end
  end
  puts status_message(dir, target, false) if !target.nil? and ds.empty?
end
version() click to toggle source
# File lib/nand/cli.rb, line 93
def version
    puts File.basename($PROGRAM_NAME) + " " + VERSION
end

Private Instance Methods

find_launcher(target, opts, *argv, &block) click to toggle source
# File lib/nand/cli.rb, line 98
def find_launcher(target, opts, *argv, &block)
  launcher = Nand::Launcher.find( target, opts, *(argv + Nand.additional_argv) )
  if block_given?
    block.call(launcher)
  else
    launcher
  end
end
invoke_task(task, *args) click to toggle source

デフォルトメソッドを上書きして -h をヘルプ

Calls superclass method
# File lib/nand/cli.rb, line 114
def invoke_task(task, *args)
  if options[:help]
    help(task.name)
  elsif options[:version] or args.flatten.first == "-v"
    version
  else
    super
  end
end
run_dir(opts) click to toggle source
# File lib/nand/cli.rb, line 106
def run_dir(opts)
  Pathname.new(opts[:run_dir] || Dir.pwd)
end
status_message(dir, target, running, pid = nil, user = nil) click to toggle source
# File lib/nand/cli.rb, line 109
def status_message(dir, target, running, pid = nil, user = nil)
  "#{target} is " + (running ? "Running [#{pid}] by #{user}" : "Not Running") + " in #{dir}"
end