shambalaxx
10/23/2015 - 12:55 PM

upload-repo.groovy

def log = new File("/temp/deploy-flex.log")
log.createNewFile()
def ROOT = "/temp/flex-repo"
def TEST = "/temp/flex-repo/org/apache/flex/framework/framework"
new File(TEST).eachDirRecurse {dir ->
    dir.eachFileMatch(~/.*\.pom/, { pomFile ->
        def pkg = (pomFile.text=~/<packaging>(.*)<\/packaging>/)[0][1]
        if (pkg.equals('pom')) {
            log << "cmd /c mvn deploy:deploy-file -Durl=http://ci2.reksoft.ru/content/repositories/thirdparty/ -Dfile=$pomFile.absolutePath -DpomFile=$pomFile.absolutePath -DrepositoryId=deployment".execute().text
            println "upload $pomFile.name finished"
        } else {        
            def files = []    
            def classifiers = []
            def types = []    
            def main
            dir.eachFileMatch({!it.endsWith("pom") && !it.endsWith("md5")},{ file ->
                if (file.name =~ /$dir.parentFile.name-$dir.name.$pkg/) {
                    main = file.absolutePath
                } else {
                    def parse = (file.name=~/$dir.parentFile.name-${dir.name.replace('.', '\\.')}-?(.*?)\.(.*)/)
                    if (parse.size() > 0){                    
                        classifiers << parse[0][1]
                        files << file
                        types << parse[0][2]
                    } else {
                        println file
                    }
                }
            })
            def cmd = ["cmd", "/c", "mvn", "deploy:deploy-file", "-Durl=http://ci2.reksoft.ru/content/repositories/thirdparty/", "-DrepositoryId=deployment", "-B",
                "-Dfile=$main",
                "-DpomFile=$pomFile.absolutePath",
                "-Dfiles=${files.join(',')}",
                "-Dclassifiers=${classifiers.join(',')}",
                "-Dtypes=${types.join(',')}",
                ]
                
//                println types 
//                println classifiers
            log << cmd << cmd.execute().text
            println "$cmd\\nfinished"
        }
    })    
 }