Sha256: b127c33d75a4c1243957271299bf492b6e180aa56fc432ea6070c002a8935b1a

Contents?: true

Size: 1.9 KB

Versions: 21

Compression:

Stored size: 1.9 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

Description

$ rbbt workflow install <workflow> [<repo>]

Install a workflow, or a coma separated list of workflows, from its source. If
repo is not specified then 'http://github.com/Rbbt-Workflows/' will be used. If
the workflow is already installed it will be updated. If 'all' is specified
instead of a particular workflow, all installed workflows will be updated.

-h--help Print this help

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

workflow = ARGV[0]
repo = ARGV[1]

raise "No workflow specified" if workflow.nil?

workflow_dir = Rbbt.etc.workflow_dir.exists? ? Path.setup(Rbbt.etc.workflow_dir.read.strip) : Rbbt.workflows.find(:user)

FileUtils.mkdir_p workflow_dir unless File.exist? workflow_dir

all_workflows = workflow_dir.glob("*/.git").collect{|d| File.basename(File.dirname(d))}
workflows = workflow == 'all' ? all_workflows : workflow.split(",")

Misc.in_dir(workflow_dir) do
  workflows.each do |workflow|
    case
    when File.exist?(Misc.snake_case(workflow))
      Log.info "Updating: " + workflow
      Misc.in_dir(Misc.snake_case(workflow)) do
        `git pull`
      end
    when File.exist?(workflow)
      Misc.in_dir(workflow) do
        Log.info "Updating: " + workflow
        `git pull`
      end
    else
      Log.info "Installing: " + workflow
      if repo.nil?
        repo_base_url = Rbbt.etc.workflow_repo.exists? ? Rbbt.etc.workflow_repo.read.strip : 'https://github.com/Rbbt-Workflows/'
        repo = File.join(repo_base_url, Misc.snake_case(workflow) + '.git')
      end
      Log.warn "Cloning #{ repo }"
      Misc.insist do
        `git clone "#{repo}"`
        raise unless $?.success?
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
rbbt-util-5.21.4 share/rbbt_commands/workflow/install
rbbt-util-5.21.3 share/rbbt_commands/workflow/install
rbbt-util-5.21.2 share/rbbt_commands/workflow/install
rbbt-util-5.21.1 share/rbbt_commands/workflow/install
rbbt-util-5.21.0 share/rbbt_commands/workflow/install
rbbt-util-5.20.26 share/rbbt_commands/workflow/install
rbbt-util-5.20.25 share/rbbt_commands/workflow/install
rbbt-util-5.20.24 share/rbbt_commands/workflow/install
rbbt-util-5.20.23 share/rbbt_commands/workflow/install
rbbt-util-5.20.22 share/rbbt_commands/workflow/install
rbbt-util-5.20.21 share/rbbt_commands/workflow/install
rbbt-util-5.20.20 share/rbbt_commands/workflow/install
rbbt-util-5.20.18 share/rbbt_commands/workflow/install
rbbt-util-5.20.17 share/rbbt_commands/workflow/install
rbbt-util-5.20.16 share/rbbt_commands/workflow/install
rbbt-util-5.20.15 share/rbbt_commands/workflow/install
rbbt-util-5.20.14 share/rbbt_commands/workflow/install
rbbt-util-5.20.13 share/rbbt_commands/workflow/install
rbbt-util-5.20.12 share/rbbt_commands/workflow/install
rbbt-util-5.20.11 share/rbbt_commands/workflow/install