Sha256: 34b3f978462acc41db11adcec501547ca405f8b14b446539e89d311c61f5beb6

Contents?: true

Size: 1.43 KB

Versions: 34

Compression:

Stored size: 1.43 KB

Contents

class Fanforce::PluginFactory::CLI::Git
  include Fanforce::PluginFactory::CLI::Utils

  attr_reader :plugin

  def initialize(plugin)
    @plugin = plugin
  end

  def setup
    if init.include?('Reinitialized')
      puts "#{'Found '.format(:green,:bold)}" + 'existing local repository'
    else
      puts "#{'Initialized '.format(:green,:bold)}" + 'local repository'
      add_files          and log '- git add .'
      make_first_commit  and log '- git commit -m "initial fanforce commit"'
      puts "#{'Created '.format(:green,:bold)}" + 'initial fanforce commit'
    end
  end

  def self.status_table_header(plugin_column_width)
    sprintf('%-12s %-50s %85s', 'GIT STATUS', 'PLUGIN NAME', 'STATS OVERVIEW').format(:bold)
  end

  def status_row(plugin_column_width)
    sprintf("%s%-12s#{fmt_end} %-50s %28s %28s %28s",
            fmt_start(is_committed ? :green : :red),
            (is_committed ? 'Committed' : 'Uncommitted'),
            plugin.name,
            *changed_stats
    )
  end

  def is_committed
    `git status`.include?('nothing to commit') ? true : false
  end

  def changed_stats
    stats_line = `git diff --stat`.split("\n").last
    stats_line ? stats_line.split(', ') : Array.new(3)
  end

  private

  def init
    response = `git init`
    `git config core.fileMode false`
    return response
  end

  def add_files
    `git add .`
  end

  def make_first_commit
    `git commit -m "initial fanforce commit"`
  end

end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
fanforce-plugin-factory-2.0.0.rc29 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc28 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc27 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc26 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc25 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc24 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc23 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc22 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc21 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc19 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc18 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc17 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc16 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc15 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc13 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc12 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc11 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc10 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc9 lib/fanforce/plugin_factory/cli/lib/git.rb
fanforce-plugin-factory-2.0.0.rc8 lib/fanforce/plugin_factory/cli/lib/git.rb