Module: GitCommands

Included in:
GitDownloadStrategy, GitUpdateStrategy, Package
Defined in:
lib/lace/download_strategy.rb

Instance Method Summary collapse

Instance Method Details

#clone_argsObject



88
89
90
91
# File 'lib/lace/download_strategy.rb', line 88

def clone_args
  args = %w[clone]
  args << @uri << @target_folder
end

#clone_repoObject



93
94
95
96
# File 'lib/lace/download_strategy.rb', line 93

def clone_repo
  safe_system 'git', *clone_args
  @target_folder.cd { update_submodules } if submodules?
end

#git_dirObject



67
68
69
# File 'lib/lace/download_strategy.rb', line 67

def git_dir
  @target_folder.join('.git')
end

#repo_modified?Boolean

Returns:

  • (Boolean)


75
76
77
78
79
80
81
82
# File 'lib/lace/download_strategy.rb', line 75

def repo_modified?
  @target_folder.cd do
    result = `git status --porcelain`
    result.split("\n").any? do |line|
      line =~ /^ M/
    end
  end
end

#repo_valid?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/lace/download_strategy.rb', line 71

def repo_valid?
  quiet_system 'git', '--git-dir', git_dir, 'status', '-s'
end

#resetObject



63
64
65
# File 'lib/lace/download_strategy.rb', line 63

def reset
  safe_system 'git', 'reset', '--hard', 'origin/HEAD'
end

#submodules?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/lace/download_strategy.rb', line 84

def submodules?
  @target_folder.join('.gitmodules').exist?
end

#update_repoObject



59
60
61
# File 'lib/lace/download_strategy.rb', line 59

def update_repo
  safe_system 'git', 'fetch', 'origin'
end

#update_submodulesObject



98
99
100
# File 'lib/lace/download_strategy.rb', line 98

def update_submodules
  safe_system 'git', 'submodule', 'update', '--init'
end