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