class Psychic::Runner::Factories::ShellScriptTaskFactory

Constants

EXTENSIONS

Public Class Methods

new(opts) click to toggle source
Calls superclass method Psychic::Runner::BaseRunner::new
# File lib/psychic/runner/factories/shell_script_factories.rb, line 10
def initialize(opts)
  super
  @known_tasks = Dir["#{@cwd}/scripts/*"].map do | script |
    File.basename(script, File.extname(script)) if EXTENSIONS.include?(File.extname(script))
  end
end

Public Instance Methods

active?() click to toggle source
# File lib/psychic/runner/factories/shell_script_factories.rb, line 32
def active?
  true
end
args_for_task(task) click to toggle source
# File lib/psychic/runner/factories/shell_script_factories.rb, line 27
def args_for_task(task)
  # HACK: Need a better way to deal with args
  '{{sample_file}}' if task == 'run_sample'
end
task_for(task_name) click to toggle source
# File lib/psychic/runner/factories/shell_script_factories.rb, line 17
def task_for(task_name)
  task = task_name.to_s
  script = Dir["#{@cwd}/scripts/#{task}{.sh,}"].first
  if script
    cmd = Psychic::Util.relativize(script, @cwd)
    cmd = [cmd, args_for_task(task_name)].compact.join(' ')
    "./#{cmd}" unless cmd.to_s.start_with? '/'
  end
end