#! /usr/bin/ruby

require 'collab-qa'
DATE=ENV['DATE']

# guess the log filename
file = ARGV[0]
if not File::exists?(file)
  lst = Dir::glob("#{file}*log")
  if lst.length == 0
    puts "No matching logfile."
    exit 1
  elsif lst.length > 1
    lst2 = lst.join("\n  ")
    puts "Several matching logfiles:\n  #{lst2}"
    exit 1
  else
    file = lst[0]
  end
end

log = CollabQA::Log::new(file)
log.extract_log

puts "--------- Error:"
puts log.extract
puts "----------------"

# check bugs
if not File::exists?(".bugs.#{log.package}")
  puts "NO BUGS FILE"
  STDIN.getc
else
  s = IO::read(".bugs.#{log.package}")
  if s.length > 0
    puts "BUGS:"
    puts s
    STDIN.getc
  end
end

versions = `apt-cache showsrc #{log.package} |grep "^Version:" | awk '{print $2}'`.split
versions.each do |v|
  if `dpkg --compare-versions #{v} gt #{log.version} ; echo $?`.to_i == 0
    puts "There's a newer version available: #{v} (vs: #{log.version})."
    STDIN.getc
  end
end

File::open(".mail.#{log.package}", "w") do |f|
  f.puts log.to_mail(DATE, ENV['DEBFULLNAME'], ENV['DEBEMAIL'], ENV['BUGTYPE'])
end

cmd = "/usr/bin/mutt -e 'set autoedit' -H .mail.#{log.package}"
system(cmd)

if ENV['TODOFILE']
  puts "edit TODOFILE?"
  STDIN.getc
  todo = IO::read(ENV['TODOFILE'])
  todo.gsub!(/^#{log.package} (.*) TODO.*$/, "#{log.package} \\1 NNN")
  File::open(ENV['TODOFILE'], "w") do |f|
    f.print todo
  end
end


