about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xcode2ny28
1 files changed, 28 insertions, 0 deletions
diff --git a/code2ny b/code2ny
new file mode 100755
index 0000000..ed1752c
--- /dev/null
+++ b/code2ny
@@ -0,0 +1,28 @@
+#!/usr/bin/env ruby
+# code2ny - convert fixme markers in source code to notyet todo lists
+
+KEYWORDS = %w[todo hack xxx fixme bug]
+
+kw = /\b#{Regexp.union(KEYWORDS.map(&:upcase))}\b.*/
+
+single = ARGV.size <= 1
+
+fn = nil
+while line = gets
+  if line =~ kw
+    msg = $&
+    msg.gsub!(/\s*\*\/.*/, '')  if line =~ /\/\*/
+
+    if single
+      puts "#{ARGF.filename}:#{ARGF.file.lineno}\t" \
+           "- #{File.basename(ARGF.filename)}:#{msg}"
+    else
+      if ARGF.filename != fn
+        fn = ARGF.filename
+        puts "#{fn}:1\t- #{fn}:"
+      end
+
+      puts "#{fn}:#{ARGF.file.lineno}\t  - #{msg}"
+    end
+  end
+end