#!/usr/bin/env ruby

f = open (ARGV[0], "r")
style = f.read.split(/\n/)
f.close

f = open (ARGV[0], "w")
wild = 0
style.each do |line|
  if line !~ /^\!/ && line =~ /font/i
    (resname, fontname) = line.split(/:/)
    if resname =~ /\*/
      wild = 1
    end
    fontname.strip!
    f.print resname, ":\t"
    if fontname =~ /^-/
      fn = fontname.split(/-/)
      if fn.size == 15
        if fn[1] == "adobe" || fn[2] == "lucida"
          f.printf ("-%s-%s-%s-%s-%s-%s-%s-*-*-*-*-*-*-*\n", fn[1], fn[2], fn[3], fn[4], fn[5], fn[6], fn[7])
        else
          f.printf ("-adobe-courier-%s-%s-%s--%s-*-*-*-*-*-*-*\n", fn[3], fn[4], fn[5], fn[7])
        end
      else
        if fn[1] == "adobe" || fn[2] == "lucida"
          f.printf ("-%s-%s-%s-%s-%s-%s-%s-*-*-*-*-*-*-*\n", fn[1], fn[2], fn[3], fn[4], fn[5], fn[6], fn[7])
        else
          f.printf ("-adobe-courier-%s-%s-%s--%s-*-*-*-*-*-*-*\n", fn[3], fn[4], fn[5], fn[7])
        end
      end
    else
      if fontname =~ /lucidasans/
        f.print "#{fontname.strip}\n"
      else
        if fontname =~ /bold/
          f.print "-adobe-courier-bold-r-normal--10-*-*-*-*-*-*-*\n"
        else
          f.print "-adobe-courier-medium-r-normal--10-*-*-*-*-*-*-*\n"
        end
      end
    end
  else
    if line =~ /[bf]set/
      line.gsub!(/[bf]setbg/, "fbsetbg")
      line =~ /^(.+?):\s*(.*)$/
      resname = $1
      cmdname = $2
      f.print resname, ":\t"
      if cmdname =~ /backgrounds/i
        cmdname.strip!
        cmdname.split.each do |arg|
          if arg =~ /backgrounds/i
            f.print "/usr/share/fluxbox-themes/backgrounds/", arg.split(/\//)[-1], " "
          else
            f.print arg, " "
          end
        end
	f.print "\n"
      else
        f.print cmdname, "\n"
      end
    else
      f.print line, "\n"
    end
  end
end
if wild == 0
  f.print "*Font: -adobe-courier-medium-r-normal--10-*-*-*-*-*-*-*\n"
end
f.close
