Sha256: 870b51022e3c0a910176212af5b40d264c580c078ff3a334784aa8c2b0d43fcc
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
module Mirage class CLI RUBY_CMD = RUBY_PLATFORM == 'java' ? 'jruby' : 'ruby' class << self def parse_options args options = {:port => 7001, :defaults => 'responses', :root_directory => '.'} opt_parser = OptionParser.new do |opts| opts.banner = "Usage: mirage start|stop [options]" opts.on("-p", "--port PORT", "the port to start Mirage on") do |port| options[:port] = port.to_i end opts.on("-d", "--defaults DIR", "location to load default responses from") do |directory| options[:defaults] = directory end opts.on('--debug', 'run in debug mode') do options[:debug] = true end end opt_parser.parse args options rescue puts opt_parser exit 1 end def run args unless mirage_process_ids.empty? puts "Mirage is already running" exit 1 end mirage_server_file = "#{File.dirname(__FILE__)}/../../mirage_server.rb" if windows? command = ["cmd", "/C", "start", "mirage server", RUBY_CMD, mirage_server_file] else command = [RUBY_CMD, mirage_server_file] end ChildProcess.build(*(command.concat(args))).start end def stop mirage_process_ids.each { |process_id| windows? ? `taskkill /F /T /PID #{process_id}` : `kill -9 #{process_id}` } wait_until { mirage_process_ids.size == 0 } end private def mirage_process_ids if windows? [`tasklist /V | findstr "mirage\\ server"`.split(' ')[1]].compact else ["Mirage Server", 'mirage_server'].collect do |process_name| `ps aux | grep "#{process_name}" | grep -v grep`.split(' ')[1] end.find_all { |process_id| process_id != $$.to_s }.compact end end def windows? ENV['OS'] == 'Windows_NT' end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mirage-2.2.2 | lib/mirage/cli.rb |