tools/cpee in cpee-1.3.211 vs tools/cpee in cpee-1.3.212

- old
+ new

@@ -1,32 +1,47 @@ #!/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] [new|ui DIRECTORY]\n" + 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("[new DIRECTORY] scaffolds a sample execution engine. Everything except instances can be removed for default behaviour.") - opt.on("[ui DIRECTORY] symlinks/updates the UI.") + 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 != 2 || !%w(ui new).include?(ARGV[0]) +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' - if !File.exists?(dir) || File.symlink?(dir) - FileUtils.ln_sf("#{curpath}/../cockpit",dir) - else - puts "File or directory with this name already exists." - end + 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