Sha256: 17c5967a512de26de5b3d679997778c845ea88b85e780518259d08a2ba6c60cd
Contents?: true
Size: 1.67 KB
Versions: 5
Compression:
Stored size: 1.67 KB
Contents
#!/usr/bin/env ruby dir = File.expand_path(File.dirname(__FILE__)) current_version = File.read(File.join(File.dirname(__FILE__), '../VERSION')).sub(/\n/, '') require "#{dir}/../lib/sfplanner" opts = Trollop::options do version "sfplanner " + current_version + " (c) 2013 Herry" banner <<-EOS Solve a planning task specified in SFP language, and print the plan (if found) in JSON format. Usage: sfplanner [options] <file> where [options] are: EOS opt :parallel, "Generate a parallel (partial-order) plan, instead of sequential.", :short => '-l' opt :json_input, "Input is in JSON format", :short => '-j' opt :pretty_json, "Print the plan in pretty JSON format", :short => '-r' opt :image, "Generate a graph image (PNG) of the plan" opt :output, "Output file path", :default => '' end def parse(filepath) home_dir = File.expand_path(File.dirname(filepath)) parser = Sfp::Parser.new({:home_dir => home_dir}) parser.parse(File.read(filepath)) parser end if ARGV[0] planner = Sfp::Planner.new opts[:file] = ARGV[0] opts[:json] = (!opts[:pretty_json] and !opts[:dot]) opts[:dot] = true if opts[:image] result = planner.solve(opts) if !opts[:image] if opts[:output].length > 0 File.open(opts[:output], 'w') { |f| f.write(result) f.flush } else puts result end else if opts[:output].length <= 0 parts = ARGV[0].split('/') src_file = parts[parts.length-1] parts = src_file.split('.') opts[:output] = src_file[0, src_file.length-1-parts[parts.length-1].length] if parts.length >= 2 opts[:output] += '.png' end if !Sfp::Graph.dot2image(result, opts[:output]) $stderr.puts "Cannot generate the image graph!" end end else Trollop::help end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
sfplanner-0.2.4 | bin/sfplanner |
sfplanner-0.2.3 | bin/sfplanner |
sfplanner-0.2.1 | bin/sfplanner |
sfplanner-0.1.5 | bin/sfplanner |
sfplanner-0.1.4 | bin/sfplanner |