tools/cpee in cpee-1.4.15 vs tools/cpee in cpee-1.4.16
- old
+ new
@@ -2,69 +2,92 @@
curpath = __dir__
require 'rubygems'
require 'optparse'
require 'fileutils'
require 'webrick'
+require 'typhoeus'
+require 'xml/smart'
-def wrap(s, width=78, indent=11)
+def wrap(s, width=78, indent=18)
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
+ s.split(/\n/).each do |ss|
+ ss.split(/[ \t]+/).each do |word|
+ if line.size + word.size >= width
+ lines << line
+ line = (" " * (indent)) + word
+ else
+ line << " " << word
+ end
+ end
+ lines << line if line
+ line = (" " * (indent-1))
+ end
return lines.join "\n"
end
ARGV.options { |opt|
opt.summary_indent = ' ' * 2
opt.banner = "Usage:\n#{opt.summary_indent}#{File.basename($0)} [options] ui | cpui DIR | 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("[archive DIR URL] save properties from all finished instances listed at URL into DIR.\ne.g. cpee ./archive http://localhost:9298/"))
opt.on("")
- opt.on(wrap("[inst DIR] scaffolds a sample instantiation service. Post a testset to a model to keep going in one operation."))
+ opt.on(wrap("[new DIR] scaffolds a sample execution engine. Everything except instances can be removed for default behaviour."))
opt.on("")
- opt.on(wrap("[cpui DIR] scaffolds a sample html client. New versions might require manual merging if you changed something."))
+ opt.on(wrap("[inst DIR] scaffolds a sample instantiation service. Post a testset to a model to keep going in one operation."))
opt.on("")
- opt.on(wrap("[ui] starts a simple static web server with the ui on http://localhost:8080. Use [cpui DIR] if you want stuff in apache or nginx."))
+ opt.on(wrap("[cpui DIR] scaffolds a sample html client. New versions might require manual merging if you changed something."))
+ opt.on("")
+ opt.on(wrap("[ui] starts a simple static web server with the ui on http://localhost:8080. Use [cpui DIR] if you want stuff in apache or nginx."))
opt.parse!
}
-if ARGV.length == 0 || (ARGV.length == 1 && ARGV[0] != 'ui') || (ARGV.length == 2 && %w(cpui new).include?(ARGV[1])) || ARGV.length > 2
+if ARGV.length == 0 || (ARGV.length == 1 && ARGV[0] != 'ui') || (ARGV.length == 2 && %w(cpui new).include?(ARGV[1])) || (ARGV.length == 3 && ARGV[0] != 'archive') || ARGV.length > 3
puts ARGV.options
exit
end
command = ARGV[0]
dir = ARGV[1]
+url = ARGV[2]
if command == 'ui'
s = WEBrick::HTTPServer.new(:Port => 8080, :DocumentRoot => "#{curpath}/../cockpit/")
trap("INT"){ s.shutdown }
s.start
-elsif command == "cpui"
+elsif command == 'cpui'
if !File.exists?(dir)
FileUtils.cp_r("#{curpath}/../cockpit/",dir)
else
puts "Directory already exists."
end
-elsif command == "inst"
+elsif command == 'inst'
if !File.exists?(dir)
FileUtils.cp_r("#{curpath}/instantiation/",dir)
else
- puts "Directory already exists."
+ puts 'Directory already exists.'
end
+elsif command == 'archive'
+ res = Typhoeus.get(url)
+ if res.success?
+ if res.headers['content-type'] == 'text/xml'
+ XML::Smart.string(res.body) do |doc|
+ puts doc.to_s
+ tcount = 0
+ fcount = 0
+ doc.root.children.each do |i|
+ p i.attributes['id']
+ p i.attributes['state']
+ end
+ end
+ end
+ end
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."
+ puts 'Directory already exists.'
end
end