Similar to Joel's approach...

#bullets.rb
h={}
%w(\  * - o x).each_with_index{|b, i| h["\t" * i]=  " " * i + "#{b} " }
puts gets.gsub(/^(\t*)/){ h[$1]} until $stdin.eof?

C:\ruby\scripts\>cat input_file | ruby bullets.rb
  foo
 * bar
  - baz
   o hello
  - world