Jenkins : Delete .tmp files left in workspace-files

This scripts deletes all the tmp files left in workspace-files directory after the build. On windows servers, this seems pretty common so we run this script on daily basis.

import hudson.model.*

def counter = 0

// Create a ref for closure
def delClos

// Define closure
delClos = {
	it.eachDir( delClos );
	if(it.getName().contains("workspace-files")) {
		it.eachFile {
			if(it.getName().endsWith(".tmp") ){
				println "Deleting file ${it.canonicalPath}";
				it.delete()
				counter++;
			}
		}
	}
}

// Apply closure
for(item in Hudson.instance.items) {
	println "Applying on " + item.rootDir
	delClos( item.rootDir )
}
println counter + " files deleted"

Sample ouput produced:

Applying on F:\hudson\.hudson\jobs\job1
Applying on F:\hudson\.hudson\jobs\job2
Applying on F:\hudson\.hudson\jobs\job3
Deleting file F:\hudson\.hudson\jobs\job3\builds\2011-01-31_13-03-47\workspace-files\13a41870.tmp
Deleting file F:\hudson\.hudson\jobs\job3\builds\2011-01-31_13-03-47\workspace-files\47d252df.tmp
Deleting file F:\hudson\.hudson\jobs\job3\builds\2011-01-31_13-03-47\workspace-files\69ef4579.tmp
Applying on F:\hudson\.hudson\jobs\job4
3 files deleted