module Homesick::Actions::GitActions
Git-related helper methods for Homesick
Constants
- MIN_VERSION
Information on the minimum git version required for
Homesick
- STRING
Public Instance Methods
git_add(file)
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 96 def git_add(file) say_status 'git add file', '', :green system "git add '#{file}'" end
git_clone(repo, config = {})
click to toggle source
TODO: move this to be more like thor's template, empty_directory, etc
# File lib/homesick/actions/git_actions.rb, line 25 def git_clone(repo, config = {}) config ||= {} destination = config[:destination] || File.basename(repo, '.git') destination = Pathname.new(destination) unless destination.is_a?(Pathname) FileUtils.mkdir_p destination.dirname if destination.directory? say_status :exist, destination.expand_path, :blue else say_status 'git clone', "#{repo} to #{destination.expand_path}", :green system "git clone -q --config push.default=upstream --recursive #{repo} #{destination}" end end
git_commit_all(config = {})
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 87 def git_commit_all(config = {}) say_status 'git commit all', '', :green if config[:message] system %(git commit -a -m "#{config[:message]}") else system 'git commit -v -a' end end
git_diff()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 106 def git_diff say_status 'git diff', '', :green system 'git diff' end
git_init(path = '.')
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 42 def git_init(path = '.') path = Pathname.new(path) inside path do if path.join('.git').exist? say_status 'git init', 'already initialized', :blue else say_status 'git init', '' system 'git init >/dev/null' end end end
git_pull()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 77 def git_pull say_status 'git pull', '', :green system 'git pull --quiet' end
git_push()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 82 def git_push say_status 'git push', '', :green system 'git push' end
git_remote_add(name, url)
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 55 def git_remote_add(name, url) existing_remote = `git config remote.#{name}.url`.chomp existing_remote = nil if existing_remote == '' if existing_remote say_status 'git remote', "#{name} already exists", :blue else say_status 'git remote', "add #{name} #{url}" system "git remote add #{name} #{url}" end end
git_status()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 101 def git_status say_status 'git status', '', :green system 'git status' end
git_submodule_init()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 67 def git_submodule_init say_status 'git submodule', 'init', :green system 'git submodule --quiet init' end
git_submodule_update()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 72 def git_submodule_update say_status 'git submodule', 'update', :green system 'git submodule --quiet update --init --recursive >/dev/null 2>&1' end
git_version_correct?()
click to toggle source
# File lib/homesick/actions/git_actions.rb, line 13 def git_version_correct? info = `git --version`.scan(/(\d+)\.(\d+)\.(\d+)/).flatten.map(&:to_i) return false unless info.count == 3 current_version = Hash[[:major, :minor, :patch].zip(info)] return true if current_version.eql?(MIN_VERSION) return true if current_version[:major] > MIN_VERSION[:major] return true if current_version[:major] == MIN_VERSION[:major] && current_version[:minor] > MIN_VERSION[:minor] return true if current_version[:major] == MIN_VERSION[:major] && current_version[:minor] == MIN_VERSION[:minor] && current_version[:patch] >= MIN_VERSION[:patch] false end