Sha256: f86220d10fdc90fb3b82c11fb3f80988cdd2913c0152e5abc6e6eeb0c8901d83

Contents?: true

Size: 1.35 KB

Versions: 7

Compression:

Stored size: 1.35 KB

Contents

#!/usr/bin/env ruby

require 'rbbt-util'
require 'rbbt/util/simpleopt'
require 'rbbt/workflow'

$0 = "rbbt #{$previous_commands*" "} #{ File.basename(__FILE__) }" if $previous_commands

options = SOPT.setup <<EOF

Make a job forget its dependencies and archive their meta-data

$ #{$0} [options] <job_path> [<task_name>|<workflow>#<task_name>] ...

Specific dependencies can be specified as . Otherwise, all are forgoten.

-h--help Print this help
-p--purge Purge dependencies
-r--recursive_purge Purge dependencies recursively

EOF
if options[:help]
  if defined? rbbt_usage
    rbbt_usage 
  else
    puts SOPT.doc
  end
  exit 0
end

path, *remove = ARGV

raise ParameterException, "No path given" if path.nil?
step = Workflow.load_step path

step.archive_deps
step.copy_files_dir
dependencies = step.dependencies

if remove && remove.any?
 remove_paths = dependencies.select do |dep|
  remove.include?(dep.task_name) || remove.include?([dep.workflow.to_s, dep.task_name] * "#")
 end.collect{|dep| dep.path } 
else
 remove_paths = dependencies.collect{|dep| dep.path }
end

step.set_info :dependencies, step.info[:dependencies].reject{|info| remove_paths.include? info.last}

if options[:purge] || options[:recursive_purge]
  dependencies.each do |dependency|
    next unless remove_paths.include? dependency.path
    Step.purge(dependency.path, options[:recursive_purge])
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rbbt-util-5.32.10 share/rbbt_commands/workflow/forget_deps
rbbt-util-5.32.9 share/rbbt_commands/workflow/forget_deps
rbbt-util-5.32.7 share/rbbt_commands/workflow/forget_deps
rbbt-util-5.32.6 share/rbbt_commands/workflow/forget_deps
rbbt-util-5.32.5 share/rbbt_commands/workflow/forget_deps
rbbt-util-5.32.4 share/rbbt_commands/workflow/forget_deps
rbbt-util-5.32.2 share/rbbt_commands/workflow/forget_deps