# HG changeset patch # User smith@nwoca.org # Date 1329252105 18000 # Node ID da29f9bde0da52ca60826b79e2e1bec95114f8cf # Parent f36eeb411845962dbe320eb73678cef79f0eff76 groovy script to 'fix' ivy scripts to use standard conventions for configurations diff -r f36eeb411845 -r da29f9bde0da fix-ivy.groovy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fix-ivy.groovy Tue Feb 14 15:41:45 2012 -0500 @@ -0,0 +1,35 @@ +import groovy.xml.* + +def xml = new XmlSlurper() +def ivy = xml.parse( new File('ivy.xml')) + +def cfgs = ivy.configurations + +if (cfgs.@defaultconfmapping.size() == 0) { + println "adding defaultconfmapping" + cfgs.@defaultconfmapping = '*->default' +} + +if (!cfgs.children().find { it.@name == 'default' } ) { + println "adding default config" + cfgs.appendNode { + conf(name:"default") + } +} + +groovy = ivy.dependencies.children().find { it.@org == 'org.codehaus.groovy' && it.@name == 'groovy' } +if (groovy) { + groovy.@conf = "*->default,optional" + println "Groovy ${groovy.@rev} conf changed to ${groovy.@conf}" +} + +def sameConfMappings = ivy.dependencies.children().findAll { it.@conf in ['*->@','*->*'] } + +println sameConfMappings.each { + it.@conf = "default->compile;%->@" + println "changing conf for ${it.@name} to ${it.@conf}" +} + + +def outputBuilder = new StreamingMarkupBuilder() +new File('ivy.xml').write( XmlUtil.serialize( outputBuilder.bind { mkp.yield ivy }).replaceAll('>','>')) \ No newline at end of file