Sha256: d38bf5eeda075655e5bc4502b02139727a97b036f2e6e3ae41fe16fcf8c21332

Contents?: true

Size: 919 Bytes

Versions: 1

Compression:

Stored size: 919 Bytes

Contents

module  Opsk
  class Commit < Thor::Group
    include Thorable, Thor::Actions

    class_option :message, :type=> :string, :desc => 'optional commit message'
    class_option :all, :type=> :boolean, :desc => 'commit all', :default => false

    def validate
	check_root
    end


    def commit
	Dir["modules/*"].reject{|o| not File.directory?(o)}.each do |d|
	  if File.exists?("#{d}/.git")
	    g = Git.init(d)
	    if g.status.changed.keys.length > 0
		puts "Listing changes for #{d}:\n\n"
		puts "#{g.show}\n\n"
		puts "Commit the changes under #{d}? (y/n)\n\n" unless options['all']
		if(options['all'] or STDIN.gets.chomp.eql?('y'))
		  g.checkout('master')
		  if options['message']
		    g.commit_all(options['message']) 
		  else 
		    puts 'Please provide commit message:\n'
		    g.commit_all(STDIN.gets.chomp) 
		  end
		end
	    else
		puts 'no changes detected'
	    end
	  end
	end
    end


  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
opskeleton-0.9.0 lib/opskeleton/commit.rb