Skip to content

Instantly share code, notes, and snippets.

@garrow
Created May 28, 2012 02:05
Show Gist options
  • Save garrow/2816830 to your computer and use it in GitHub Desktop.
Save garrow/2816830 to your computer and use it in GitHub Desktop.
Quick and terrible svn output colouriser, might be ugly in non custom terminal colour schemes. Mine is based on monokai.
#!/usr/bin/ruby
colours = { :white => "\033[1;37m" \
, :yellow => "\033[1;33m" \
, :green => "\033[1;32m" \
, :blue => "\033[1;34m" \
, :cyan => "\033[1;36m" \
, :red => "\033[1;31m" \
, :magenta => "\033[1;35m" \
, :black => "\033[1;30m" \
, :darkwhite => "\033[0;37m" \
, :darkyellow => "\033[0;33m" \
, :darkgreen => "\033[0;32m" \
, :darkblue => "\033[0;34m" \
, :darkcyan => "\033[0;36m" \
, :darkred => "\033[0;31m" \
, :darkmagenta => "\033[0;35m" \
, :darkblack => "\033[0;30m" \
, :off => "\033[0;0m" }
ARGF.each_line do |e|
case e[0,1]
when 'A'
colour = :darkgreen
when 'C'
colour = :magenta
when 'D'
colour = :darkred
when 'I'
colour = :black
when 'M'
colour = :blue
when 'R'
colour = :darkblue
when 'X'
colour = :black
when '?'
colour = :yellow
when '!'
colour = :red
when '~'
colour = :magenta
when 'P' # Performing status on externals
colour = :darkwhite
else
colour = :off
end
puts colours[colour] + e
end
# First column: Says if item was added, deleted, or otherwise changed
# ' ' no modifications
# 'A' Added
# 'C' Conflicted
# 'D' Deleted
# 'I' Ignored
# 'M' Modified
# 'R' Replaced
# 'X' an unversioned directory created by an externals definition
# '?' item is not under version control
# '!' item is missing (removed by non-svn command) or incomplete
# '~' versioned item obstructed by some item of a different kind
@loveybot
Copy link

Yay Ruby!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment