Sha256: 2a6948140222e4c07aa93015a75cf3a71e8d511b5df6d8db8b08bcc542aa42fa

Contents?: true

Size: 1.45 KB

Versions: 12

Compression:

Stored size: 1.45 KB

Contents

require 'dply/helper'
module Dply
  module Git

    extend Helper

    def self.pull(branch)
      cmd "git fetch"
      checkout(branch)
      if tracking_branch = get_tracking_branch(branch)
        cmd "git merge #{tracking_branch}"
      else
        cmd "git pull origin #{branch}"
      end
    end
  
    def self.checkout(branch)
      current_branch = `git rev-parse --abbrev-ref HEAD `.chomp.to_sym
      cmd "git checkout #{branch}" if branch != current_branch
    end

    def self.clone(repo, dir, mirror: nil)
      if mirror
        cmd "git clone #{mirror} #{dir}"
        Dir.chdir(dir) { cmd "git remote set-url origin #{repo}" }
      else
        cmd "git clone #{repo} #{dir}"
      end
    end

    def self.clean
      cmd "git reset --hard HEAD"
      cmd "git clean -dxf "
    end

    def self.get_tracking_branch(branch)
      command = "git for-each-ref --format='%(upstream:short)' refs/heads/#{branch} --count=1"
      tracking_branch = `#{command}`
      if tracking_branch =~ /[a-zA-Z0-9_]/
        return tracking_branch.chomp!
      else
        return nil
      end  
    end

    def self.get_remote_url
     remote_url = cmd "git config --get remote.origin.url", return_output: true, display: false
     logger.debug remote_url.chomp
     remote_url.chomp
    end

    def self.commit_id
      commit_id = cmd "git rev-parse HEAD", return_output: true, display: false
      logger.debug commit_id.chomp
      commit_id.chomp
    end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
dply-0.2.19 lib/dply/git.rb
dply-0.2.18 lib/dply/git.rb
dply-0.2.17 lib/dply/git.rb
dply-0.2.16 lib/dply/git.rb
dply-0.2.15 lib/dply/git.rb
dply-0.2.14 lib/dply/git.rb
dply-0.2.13 lib/dply/git.rb
dply-0.2.11 lib/dply/git.rb
dply-0.2.10 lib/dply/git.rb
dply-0.2.9 lib/dply/git.rb
dply-0.2.8 lib/dply/git.rb
dply-0.2.7 lib/dply/git.rb