#!/usr/bin/env ruby # This is a command line client that can do a number of read operations # on a git repository in pure ruby. This may be helpful if you have access # to a computer that has no C compiler but you want to do some git stuff # on it. It's also helpful for me to test Git stuff with. # # author : Scott Chacon (schacon@gmail.com) # # todo: # add --git-dir # add --log-file # add --help #require 'lib/git' require 'rubygems' require 'git' require 'logger' command = ARGV[0] if !command puts 'You have to provide a command' puts 'usage: gitr (command) [args]' puts puts 'commands: log' puts ' log-shas' puts ' cat-file' puts ' rev-parse' puts ' branches' puts ' config' exit end git_dir = ENV['GIT_DIR'] || '.git' @git = Git.bare(git_dir, :log => Logger.new(STDOUT)) case command when 'log' # gitr log @git.log.each do |l| puts 'commit ' + l.sha puts l.contents puts end when 'log-shas' # gitr log-shas puts @git.log when 'cat-file' # gitr cat-file puts @git.cat_file(ARGV[1]) when 'rev-parse' # gitr rev-parse puts @git.revparse(ARGV[1]) when 'branches' # gitr branches puts @git.branches when 'config' # gitr config @git.config.sort.each do |k,v| puts "#{k} : #{v}" end end # gitr ls-tree # gitr pack-browse # gitr diff / stats ? # output in yaml?