Sha256: d548f48b057693ca0c4ecb32e7013952792b9a1a9b815e20872ec74f567370ff

Contents?: true

Size: 1.3 KB

Versions: 3

Compression:

Stored size: 1.3 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.load_defaults
  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

3 entries across 3 versions & 1 rubygems

Version Path
mirage-0.1.4 bin/mirage
mirage-0.1.3 bin/mirage
mirage-0.1.2 bin/mirage