Sha256: 09426c817dd670bd185bd5dd828b3131bb8e217dbb3128be7e269f5da21e61c9

Contents?: true

Size: 1.82 KB

Versions: 2

Compression:

Stored size: 1.82 KB

Contents

require 'fileutils'
require 'lookfile'

# module for help with git
module Git
  module_function

  BASE_DIR = '~/'.freeze
  LOOKFILE_DIR = '.lookfile'.freeze

  def load_git_command(base_dir = BASE_DIR)
    directory = Lookfile.load_lookfile_dir(base_dir)
    "git -C '#{directory}'"
  end

  def init(base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    `#{git} init`
  end

  def remote?(base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    remote = `#{git} remote`
    remote.include?('origin')
  end

  def set_remote(repository_ssh_name, base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    `#{git} remote remove origin` if remote?(base_dir)
    `#{git} remote add origin #{repository_ssh_name}`
  end

  def rebase(base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    branchs = `#{git} branch -a`
    return nil unless branchs.include?('remotes/origin/master')
    `#{git} fetch origin -p`
    `#{git} pull origin master`
  end

  def commit(base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    untracked_files = `#{git} ls-files --others --exclude-standard`.split
    deleted_files = `#{git} ls-files --deleted`.split
    modified_files = `#{git} ls-files --modified`.split - deleted_files
    `#{git} add --all`
    message = Lookfile.show_files("\nAdded files:", untracked_files)
    message += Lookfile.show_files("\nModified files:", modified_files)
    message += Lookfile.show_files("\nDeleted files:", deleted_files)
    return nil unless make_commit?(message, base_dir)
    message
  end

  def push(base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    `#{git} push origin master`
  end

  def make_commit?(message, base_dir = BASE_DIR)
    git = load_git_command(base_dir)
    commit = `#{git} commit -m "#{message}"`
    return false if commit.include?('nothing to commit')
    true
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lookfile-0.1.1 lib/git.rb
lookfile-0.1.0 lib/git.rb