Skip to content

Instantly share code, notes, and snippets.

@heitara
Last active August 29, 2015 13:57
Show Gist options
  • Save heitara/9911056 to your computer and use it in GitHub Desktop.
Save heitara/9911056 to your computer and use it in GitHub Desktop.
import java.security.MessageDigest;
buildscript {
repositories {
mavenCentral()
}
}
task rename(type: Copy) {
from 'in'
into 'out'
// Use a closure to map the file name
rename { String fileName ->
generateMD5(fileName)+fileExtension(fileName);
}
}
task createList2() {
File srcDir
File list = new File("images.js")
list.createNewFile()
list.write("[")
FilenameFilter fnf = {d, f-> f ==~ '\\.*' } as FilenameFilter
// Create a file collection using a closure
FileCollection collection = files { srcDir.listFiles([accept:{d, f-> f.indexOf(".") > 0 }] as FilenameFilter) }
Collection c = []
srcDir = file('in')
println "Contents of $srcDir.name"
collection.collect { it.name }.sort().each { c.add(it); }
if(!c.isEmpty())
{
Object last = c.pop();
c.each { list <<"{\"name\":\"" + it +"\"}," }
list <<"{\"name\":\"" + last +"\"}"
}
list << "]"
}
task createList() {
File srcDir
File list = new File("out.js")
list.createNewFile()
list << "["
// Create a file collection using a closure
FileCollection collection = files { srcDir.listFiles() }
Collection c = []
srcDir = file('out')
println "Contents of $srcDir.name"
collection.collect { it.name }.sort().each { c.add(it); }
Object last = c.pop();
c.each { list <<"{\"name\":\"" + it +"\"}," }
list <<"{\"name\":\"" + last +"\"}"
list << "]"
}
def generateMD5(String s) {
MessageDigest digest = MessageDigest.getInstance("MD5")
digest.update(s.bytes);
new BigInteger(1, digest.digest()).toString(16).padLeft(32, '0')
}
def fileExtension(String s) {
s.substring(s.lastIndexOf("."));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment