Sha256: 2955779974f29611d5ce062a71195cbe107673d7a0701f4dfedc837d12b8a1c8

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

#!/usr/bin/ruby
curpath = __dir__
require 'rubygems'
require 'optparse'
require 'fileutils'
require 'webrick'

def wrap(s, width=78, indent=10)
	lines = []
	line, s = s[0..indent-2], s[indent..-1]
	s.split(/\s+/).each do |word|
		if line.size + word.size >= width
			lines << line
			line = (" " * (indent)) + word
		else
		 line << " " << word
	 end
	 end
	 lines << line if line
	return lines.join "\n"
end

ARGV.options { |opt|
  opt.summary_indent = ' ' * 2
  opt.banner = "Usage:\n#{opt.summary_indent}#{File.basename($0)} [options] [ui] | [new DIR]\n"
  opt.on("Options:")
  opt.on("--help", "-h", "This text") { puts opt; exit }
	opt.on("")
  opt.on(wrap("[new DIR] scaffolds a sample execution engine. Everything except instances can be removed for default behaviour."))
  opt.on(wrap("[ui]      starts a simple static web server with the ui on http://localhost:8080. Copy #{File.realpath(curpath + '/../cockpit')} if you want stuff in apache or nginx."))
  opt.parse!
}
if ARGV.length == 0 || (ARGV.length == 1 && ARGV[0] != 'ui') || (ARGV.length == 2 && ARGV[1] != 'new') || ARGV.length > 2
  puts ARGV.options
  exit
end
command = ARGV[0]
dir     = ARGV[1]

if command == 'ui'
  s = WEBrick::HTTPServer.new(:Port => 8080,  :DocumentRoot => "#{curpath}/../cockpit")
  trap("INT"){ s.shutdown }
  s.start
else
  if !File.exists?(dir)
    FileUtils.cp_r("#{curpath}/server/",dir)
    FileUtils.mkdir("#{dir}/instances") rescue nil
    FileUtils.mkdir("#{dir}/resources") rescue nil
    FileUtils.mkdir("#{dir}/handlerwrappers") rescue nil
  else
    puts "Directory already exists."
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cpee-1.3.213 tools/cpee
cpee-1.3.212 tools/cpee