Module: Docman::GitUtil
- Defined in:
- lib/docman/git_util.rb
Class Method Summary collapse
- .commit(root_path, path, message) ⇒ Object
- .exec(command) ⇒ Object
- .get(repo, path, type, version) ⇒ Object
- .last_commit_hash(path, branch) ⇒ Object
- .pull(path) ⇒ Object
- .push(root_path, version) ⇒ Object
- .repo?(path) ⇒ Boolean
- .repo_changed?(path) ⇒ Boolean
- .reset_repo(path) ⇒ Object
- .update(path) ⇒ Object
Class Method Details
.commit(root_path, path, message) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/docman/git_util.rb', line 52 def self.commit(root_path, path, ) if repo_changed? path # puts message pull root_path exec %Q(git add --all #{path.slice "#{root_path}/"}) exec %Q(git commit -m "#{}") end end |
.exec(command) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/docman/git_util.rb', line 9 def self.exec(command) @logger.info command result = `#{command}`.delete!("\n") @logger.info result if result raise result unless $?.exitstatus == 0 result end |
.get(repo, path, type, version) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/docman/git_util.rb', line 23 def self.get(repo, path, type, version) if File.directory? path and File.directory?(File.join(path, '.git')) Dir.chdir path self.reset_repo(path) if self.repo_changed?(path) if type == 'branch' exec "git checkout #{version}" exec "git pull origin #{version}" end if type == 'tag' exec 'git fetch --tags' exec "git checkout tags/#{version}" end else FileUtils.rm_rf path if File.directory? path exec "git clone #{repo} #{path}" Dir.chdir path exec "git checkout #{version}" end result = `git rev-parse --short HEAD` @logger.info "Commit hash: #{result}" result.delete!("\n") end |
.last_commit_hash(path, branch) ⇒ Object
74 75 76 77 78 |
# File 'lib/docman/git_util.rb', line 74 def self.last_commit_hash(path, branch) Dir.chdir path result = `git rev-parse --short origin/#{branch}` result.delete!("\n") end |
.pull(path) ⇒ Object
61 62 63 64 |
# File 'lib/docman/git_util.rb', line 61 def self.pull(path) Dir.chdir path exec 'git pull' end |
.push(root_path, version) ⇒ Object
80 81 82 83 84 |
# File 'lib/docman/git_util.rb', line 80 def self.push(root_path, version) Dir.chdir root_path `git pull origin #{version}` `git push origin #{version}` end |
.repo?(path) ⇒ Boolean
66 67 68 |
# File 'lib/docman/git_util.rb', line 66 def self.repo?(path) File.directory? File.join(path, '.git') end |
.repo_changed?(path) ⇒ Boolean
70 71 72 |
# File 'lib/docman/git_util.rb', line 70 def self.repo_changed?(path) not Exec.do "#{Application::bin}/dm_repo_clean.sh #{path}" end |
.reset_repo(path) ⇒ Object
17 18 19 20 21 |
# File 'lib/docman/git_util.rb', line 17 def self.reset_repo(path) Dir.chdir path exec 'git reset --hard' exec 'git clean -f -d' end |
.update(path) ⇒ Object
48 49 50 |
# File 'lib/docman/git_util.rb', line 48 def self.update(path) pull path end |