diff vendor/gems/coderay-0.9.7/bin/.svn/text-base/coderay.svn-base @ 210:0579821a129a

Update to Redmine trunk rev 4802
author Chris Cannam
date Tue, 08 Feb 2011 13:51:46 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/.svn/text-base/coderay.svn-base	Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,86 @@
+#!/usr/bin/env ruby
+# CodeRay Executable
+#
+# Version: 0.2
+# Author: murphy
+
+require 'coderay'
+
+if ARGV.empty?
+  $stderr.puts <<-USAGE
+CodeRay #{CodeRay::VERSION} (http://coderay.rubychan.de)
+
+Usage:
+  coderay file [-<format>]
+  coderay -<lang> [-<format>] [< file] [> output]
+
+Defaults:
+  lang:   based on file extension
+  format: ANSI colorized output for terminal, HTML page for files
+
+Examples:
+  coderay foo.rb                         # colorized output to terminal, based on file extension
+  coderay foo.rb -loc                    # print LOC count, based on file extension and format
+  coderay foo.rb > foo.html              # HTML page output to file, based on extension
+  coderay -ruby < foo.rb                 # colorized output to terminal, based on lang
+  coderay -ruby -loc < foo.rb            # print LOC count, based on lang
+  coderay -ruby -page foo.rb             # HTML page output to terminal, based on lang and format
+  coderay -ruby -page foo.rb > foo.html  # HTML page output to file, based on lang and format
+  USAGE
+end
+
+first, second = ARGV
+
+def read
+  file = ARGV.grep(/^(?!-)/).last
+  if file
+    if File.exist?(file)
+      File.read file
+    else
+      $stderr.puts "No such file: #{file}"
+    end
+  else
+    $stdin.read
+  end
+end
+
+if first
+  if first[/-(\w+)/] == first
+    lang = $1
+    input = read
+    tokens = :scan
+  else
+    file = first
+    unless File.exist? file
+      $stderr.puts "No such file: #{file}"
+      exit 2
+    end
+    tokens = CodeRay.scan_file file
+  end
+else
+  $stderr.puts 'No lang/file given.'
+  exit 1
+end
+
+if second
+  if second[/-(\w+)/] == second
+    format = $1.to_sym
+  else
+    raise 'invalid format (must be -xxx)'
+  end
+else
+  if $stdout.tty?
+    format = :term
+  else
+    $stderr.puts 'No format given; setting to default (HTML Page).'
+    format = :page
+  end
+end
+
+if tokens == :scan
+  output = CodeRay::Duo[lang => format].highlight input
+else
+  output = tokens.encode format
+end
+out = $stdout
+out.puts output