#!/usr/bin/env ruby # @(#) generate outline listing of a POM file showing target section order require 'nokogiri' # target order ORDER=%w( modelVersion parent groupId artifactId version packaging name description url inceptionYear organization licenses properties mailingLists prerequisites modules scm issueManagement ciManagement distributionManagement dependencyManagement dependencies repositories pluginRepositories build reporting profiles developers contributors ) doc = Nokogiri::XML(ARGF) do |config| config.options = Nokogiri::XML::ParseOptions::NOBLANKS end lasti = 0 j=0 doc.root.children.each do |child| n = child.name next if n == 'comment' i = ORDER.index(n) unless i puts n next end m = '' if i < lasti m=' ?' j+=1 end puts "%2d #{n}%s" % [i, m] lasti = i end puts "Found #{j} errors"