Sha256: 189527278864069e247a8aa9e256ddf6c36294991973696097c59688ff216b52

Contents?: true

Size: 1.01 KB

Versions: 10

Compression:

Stored size: 1.01 KB

Contents

require 'karo/config'
require 'thor'

module Karo

  module Common Thor

    include Thor::Actions

    def make_command(configuration, namespace, command, extras)
      commands = configuration["commands"]

      if commands && commands[namespace] && commands[namespace][command]
        command = commands[namespace][command]
      end

      extras = extras.flatten(1).uniq.join(" ").strip

      "#{command} #{extras}"
    end

    def run_it(cmd, verbose=false)
      say cmd, :green if verbose
      system cmd
    end

    def git_repo
      Grit::Repo.new(".")
    end

    def branch_exists?(name)
      git_repo.branches.find { |b| b.name.start_with?(name) }
    end

    def create_branch(name)
      run_it "git branch #{name}", options[:verbose]
    end

    def checkout_branch(name)
      run_it "git checkout #{name}", options[:verbose]
    end

    def current_branch
      git_repo.head.name
    end

    def create_and_checkout_branch(name)
      create_branch name
      checkout_branch name
    end

  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
karo-2.3.7 lib/karo/common.rb
karo-2.3.6 lib/karo/common.rb
karo-2.3.5 lib/karo/common.rb
karo-2.3.4 lib/karo/common.rb
karo-2.3.3 lib/karo/common.rb
karo-2.3.2 lib/karo/common.rb
karo-2.3.1 lib/karo/common.rb
karo-2.3.0 lib/karo/common.rb
karo-2.2.1 lib/karo/common.rb
karo-2.2.0 lib/karo/common.rb