#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))

packs = DbPackage.find :all, :conditions => "develproject_id is not null"

packs.each do |p|
  begin
    p.resolve_devel_package
  rescue DbPackage::CycleError => e
    puts e.message
    next
  end

  prj = p.develproject
  if not prj
    puts "HUH! devel project of #{p.name}@#{p.db_project.name} does not exist"
    next
  end

  if not prj.db_packages
    puts "HUH! #{prj.name} does not contain packages!!"
    next
  end
  if p.develpackage
    puts "HUH! #{p.db_project.name}/#{p.name} has both devel project and package"
    next
  end

  pkg = prj.db_packages.find_by_name(p.name)

  if not pkg
    puts "HUH! Something went wrong"
    next
  end

  puts "migrating #{p.name}@#{p.db_project.name} from project #{prj.name} to package in that project"
  p.develproject = nil
  p.develpackage = pkg
  p.store

end
