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