Module: GitCommands

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

Instance Method Summary collapse

Instance Method Details

#clone_argsObject



91
92
93
94
# File 'lib/lace/download_strategy.rb', line 91

def clone_args
  args = %w{clone}
  args << @uri << @target_folder
end

#clone_repoObject



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

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

#git_dirObject



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

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

#repo_modified?Boolean

Returns:

  • (Boolean)


78
79
80
81
82
83
84
85
# File 'lib/lace/download_strategy.rb', line 78

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)


74
75
76
# File 'lib/lace/download_strategy.rb', line 74

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

#resetObject



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

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

#submodules?Boolean

Returns:

  • (Boolean)


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

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

#update_repoObject



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

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

#update_submodulesObject



101
102
103
# File 'lib/lace/download_strategy.rb', line 101

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