package org.wikimedia.integration
|
|
|
|
/**
|
|
* Static functions of global utility plopped into a class.
|
|
*/
|
|
class Utility {
|
|
/**
|
|
* Random number generator.
|
|
*/
|
|
static private final Random random = new Random()
|
|
|
|
/**
|
|
* Alphabet used for random string generation.
|
|
*/
|
|
static private final alphanums = ('a'..'z') + ('0'..'9')
|
|
|
|
/**
|
|
* Quotes the given shell argument.
|
|
*
|
|
* @param argument Shell argument.
|
|
* @return Quoted shell argument.
|
|
*/
|
|
static String arg(String argument) {
|
|
"'" + argument.replace("'", "'\\''") + "'"
|
|
}
|
|
|
|
/**
|
|
* Quotes all given shell arguments.
|
|
*
|
|
* @param arguments Shell argument.
|
|
* @return Quoted shell arguments.
|
|
*/
|
|
static String args(List arguments) {
|
|
println(arguments)
|
|
arguments.collect { arg(it) }.join(" ")
|
|
}
|
|
|
|
/**
|
|
* Returns a random alpha-numeric string that's length long.
|
|
*
|
|
* @param length Desired length of string.
|
|
*/
|
|
static String randomAlphanum(length) {
|
|
(1..length).collect { alphanums[random.nextInt(alphanums.size())] }.join()
|
|
}
|
|
|
|
/**
|
|
* Returns a timestamp suitable for use in image names, tags, etc.
|
|
*/
|
|
static String timestampLabel() {
|
|
new Date().format("yyyy-MM-dd-HHmmss", TimeZone.getTimeZone("UTC"))
|
|
}
|
|
}
|