Sha256: 8037bf7e78368d05c6127258c127aa8b840a0c5fdeeeff25a8df85911f8fb72f

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

#!/usr/bin/env ruby
require 'rubygems'
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib")
require 'mirage'
include Mirage::Util
RUBY_CMD = RUBY_PLATFORM == 'JAVA' ? 'jruby' : 'ruby'


def start_mirage(args, mirage)
  puts "Starting Mirage"
  system "(#{RUBY_CMD} #{File.dirname(__FILE__)}/../lib/start_mirage.rb #{args.join(' ')}) > /dev/null 2>&1 &"
  wait_until do
    mirage.running?
  end
end

def mirage_process_ids
  mirage_cmdline_files = Dir['/proc/*/cmdline'].find_all { |cmdline_file| File.read(cmdline_file) =~ /Mirage Server|start_mirage/ }
  mirage_cmdline_files.collect{|mirage_cmdline_file| File.read("#{File.dirname(mirage_cmdline_file)}/stat").split(' ').first.to_i }
end

if ARGV.include?('start')

  options =  parse_options(ARGV)
  mirage_client = Mirage::Client.new "http://localhost:#{options[:port]}/mirage"

  if mirage_client.running?
    puts "Mirage already running"
    exit 1
  end

  start_mirage(ARGV, mirage_client)
  begin
    mirage_client.prime
  rescue Mirage::InternalServerException => e
    puts "WARN: #{e.message}"
  end


elsif ARGV.include?('stop')
  puts "Stoping Mirage"
  begin
    mirage_process_ids.each do |id|
      puts "killing #{id}"
      Process.kill(9, id)
    end

  rescue
    puts 'Mirage is not running'
  end
else
  parse_options ['--help']
  exit 1
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mirage-1.0.2 bin/mirage
mirage-1.0.1 bin/mirage
mirage-1.0.0 bin/mirage
mirage-0.1.7 bin/mirage
mirage-0.1.6 bin/mirage
mirage-0.1.5 bin/mirage