Class: MRuby::Command::Git

Inherits:
MRuby::Command show all
Defined in:
ext/enterprise_script_service/mruby/lib/mruby/build/command.rb

Constant Summary

Constants inherited from MRuby::Command

NotFoundCommands

Instance Attribute Summary collapse

Attributes inherited from MRuby::Command

#build, #command

Instance Method Summary collapse

Methods inherited from MRuby::Command

#clone, #shellquote

Constructor Details

#initialize(build) ⇒ Git

Returns a new instance of Git.



284
285
286
287
288
289
290
291
292
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 284

def initialize(build)
  super
  @command = 'git'
  @flags = %w[]
  @clone_options = "clone %{flags} %{url} %{dir}"
  @pull_options = "--git-dir #{shellquote("%{repo_dir}/.git")} --work-tree #{shellquote("%{repo_dir}")} pull"
  @checkout_options = "--git-dir #{shellquote("%{repo_dir}/.git")} --work-tree #{shellquote("%{repo_dir}")} checkout %{checksum_hash}"
  @reset_options = "--git-dir #{shellquote("%{repo_dir}/.git")} --work-tree #{shellquote("%{repo_dir}")} reset %{checksum_hash}"
end

Instance Attribute Details

#checkout_optionsObject

Returns the value of attribute checkout_options.



282
283
284
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 282

def checkout_options
  @checkout_options
end

#clone_optionsObject

Returns the value of attribute clone_options.



282
283
284
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 282

def clone_options
  @clone_options
end

#flagsObject

Returns the value of attribute flags.



281
282
283
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 281

def flags
  @flags
end

#pull_optionsObject

Returns the value of attribute pull_options.



282
283
284
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 282

def pull_options
  @pull_options
end

#reset_optionsObject

Returns the value of attribute reset_options.



282
283
284
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 282

def reset_options
  @reset_options
end

Instance Method Details

#commit_hash(dir) ⇒ Object



314
315
316
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 314

def commit_hash(dir)
  `#{@command} --git-dir #{shellquote(dir +'/.git')} --work-tree #{shellquote(dir)} rev-parse --verify HEAD`.strip
end

#current_branch(dir) ⇒ Object



318
319
320
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 318

def current_branch(dir)
  `#{@command} --git-dir #{shellquote(dir + '/.git')} --work-tree #{shellquote(dir)} rev-parse --abbrev-ref HEAD`.strip
end

#run_checkout(dir, checksum_hash) ⇒ Object



304
305
306
307
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 304

def run_checkout(dir, checksum_hash)
  _pp "GIT CHECKOUT", checksum_hash
  _run checkout_options, { :checksum_hash => checksum_hash, :repo_dir => dir }
end

#run_clone(dir, url, _flags = []) ⇒ Object



294
295
296
297
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 294

def run_clone(dir, url, _flags = [])
  _pp "GIT", url, dir.relative_path
  _run clone_options, { :flags => [flags, _flags].flatten.join(' '), :url => url, :dir => filename(dir) }
end

#run_pull(dir, url) ⇒ Object



299
300
301
302
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 299

def run_pull(dir, url)
  _pp "GIT PULL", url, dir.relative_path
  _run pull_options, { :repo_dir => dir }
end

#run_reset_hard(dir, checksum_hash) ⇒ Object



309
310
311
312
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 309

def run_reset_hard(dir, checksum_hash)
  _pp "GIT RESET", checksum_hash
  _run reset_options, { :checksum_hash => checksum_hash, :repo_dir => dir }
end