Below is the script that can help you to automate that. You can do something like this.
java -cp `groovy ClassPathBuilder.groovy absolute auto jars` myproject.Main
def validateArgs() {
if (this.args.size() != 3) {
printUsage()
System.exit(0)
}
if (this.args[0] != 'absolute' && this.args[0] != 'relative' &&
this.args[1] != 'unix' && this.args[1] != 'windows' && this.args[1] != 'auto') {
printUsage()
System.exit(0)
}
if (!(new File(this.args[2]).isDirectory())) {
println "${this.args[2]} is not a directory"
System.exit(0)
}
}
def printUsage() {
println "Usage: groovy ClassPathBuilder.groovy [absolute|relative] [unix|windows|auto] [dir]"
}
def getJars(def file) {
def jars = []
file.eachFileRecurse {
if (it.name.toLowerCase().endsWith(".jar")) {
jars += it
}
}
return jars
}
validateArgs()
def dir = new File(this.args[2])
def jars = getJars(dir)
def option1 = this.args[0]
def option2 = this.args[1]
def pathSeparator = (option2 == 'unix') ? ":" : (option2 == 'windows') ? ";" : File.pathSeparator
def result = ''
if (option1 == 'absolute') {
result = jars.collect { file -> file.getPath() }.join(pathSeparator)
} else {
result = jars.collect { file -> file.getPath().substring(dir.getPath().size()+1) }.join(pathSeparator)
}
if (option2 == 'unix') {
println result.replaceAll('\\\\', '/')
} else if (option2 == 'windows') {
println result.replaceAll('/', '\\\\')
} else {
println result
}
No comments:
Post a Comment