bin/run_workflow.rb in rbbt-util-5.1.0 vs bin/run_workflow.rb in rbbt-util-5.2.0

- old
+ new

@@ -23,11 +23,11 @@ end def fix_options(workflow, task, job_options) option_types = workflow.rec_input_types(task.name) - workflow.resolve_locals(job_options) + #workflow.resolve_locals(job_options) job_options_cleaned = {} job_options.each do |name, value| value = case option_types[name].to_sym @@ -78,39 +78,101 @@ end job_options_cleaned end -options = SOPT.get "-t--task*:-l--log*:-h--help:-n--name*:-cl--clean:-rcl-recursive_clean:-pn--printname:-srv--server:-p--port*" +options = SOPT.get "-t--task*:--profile:-l--log*:-h--help:-n--name*:-cl--clean:-rcl-recursive_clean:-pn--printname:-srv--server:-p--port*" workflow = ARGV.first if options[:server] - require 'rbbt/util/log' - require 'rbbt/workflow' - require 'rbbt/workflow/rest' - require 'sinatra' - require 'compass' + #require 'rbbt/util/log' + #require 'rbbt/workflow' + #require 'rbbt/workflow/rest' + #require 'sinatra' + #require 'compass' - Workflow.require_workflow workflow - WorkflowREST.add_workflows *Workflow.workflows + #if workflow + # Workflow.require_workflow workflow + # WorkflowREST.add_workflows *Workflow.workflows + #end - WorkflowREST.setup + #WorkflowREST.setup - Sinatra::Application.port = options[:port] || 4567 - Sinatra::Application.run = true + #Sinatra::Application.port = options[:port] || 4567 + #Sinatra::Application.run = true - if File.exists? workflow - Sinatra::Application.views = File.join(File.dirname(workflow), 'www/views') + #if workflow and File.exists? workflow + # Sinatra::Application.views = File.join(File.dirname(workflow), 'www/views') + #end + + #sinatra_file = './lib/sinatra.rb' + #if File.exists? sinatra_file + # require sinatra_file + #end + require 'zurb-foundation' + require 'modular-scale' + + require 'rbbt/rest/main' + require 'rbbt/rest/entity' + require 'rbbt/rest/workflow' + require 'rbbt/rest/file_server' + require 'rbbt/rest/helpers' + + YAML::ENGINE.yamler = 'syck' if defined? YAML::ENGINE and YAML::ENGINE.respond_to? :yamler + + Workflow.require_workflow workflow + + class WorkflowRest < Sinatra::Base + get '/' do + redirect to(File.join('/', Workflow.workflows.last.to_s)) + end end - sinatra_file = './lib/sinatra.rb' - if File.exists? sinatra_file - require sinatra_file + if options[:profile] + WorkflowRest.before File.join('/', Workflow.workflows.last.to_s, '*') do + @profile = true + end end + class WorkflowRest < Sinatra::Base + + #{{{ MODULES AND HELPERS + register Sinatra::RbbtRESTMain + register Sinatra::RbbtRESTWorkflow + register Sinatra::RbbtRESTEntity + helpers Sinatra::RbbtMiscHelpers + + #{{{ DIRECTORIES + local_var = Rbbt.var.find(:lib) + set :cache_dir , local_var.sinatra.cache.find + set :file_dir , local_var.sinatra.files.find + set :favourites_dir , local_var.sinatra.favourites.find + set :favourite_lists_dir , local_var.sinatra.favourite_lists + + #{{{ SESSIONS + use Rack::Session::Cookie, :key => 'rack.session', + :path => '/', + :expire_after => 2592000, + :secret => "Workflow #{Workflow.workflows.inspect} secret!!" + + #{{{ FOUNDATION RESOURCES + add_sass_load_path "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets" + add_sass_load_path "#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/scss/" + add_sass_load_path "#{Gem.loaded_specs['modular-scale'].full_gem_path}/stylesheets/" + RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/foundation") + RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/vendor") + + $title = "Workflow Scout" + use Rack::Deflater + end + + WorkflowRest.add_workflow Workflow.workflows.last, true + + WorkflowRest.port = options[:port] || 4567 + WorkflowRest.run! else # Set log, fork, clean, recursive_clean and help Log.severity = options[:log].to_i if options.include? :log help = !!options.delete(:help) @@ -145,10 +207,10 @@ namespace = workflow when (options[:task] =~ /\./) namespace, task = options.delete(:task).split('.') namespace = Misc.string2const(namespace) else - task_name = options.delete(:task) + task_name = options.delete(:task).to_sym task = workflow.tasks[task_name] raise "Task not found: #{ task_name }" if task.nil? end