Factor out the stdout.println/flush pattern When executing the warm-cache for projects, we can factor out the println and flushing of the result to avoid repetition of the stdout.println + stdout.flush calls. Change-Id: I64993e0533ffdd7c9bf6db7ebd7dfb157bf9eb17
diff --git a/admin/warm-cache-1.0.groovy b/admin/warm-cache-1.0.groovy index e3eb87c..f422a96 100644 --- a/admin/warm-cache-1.0.groovy +++ b/admin/warm-cache-1.0.groovy
@@ -18,32 +18,39 @@ import com.google.inject.* import org.kohsuke.args4j.* +abstract class BaseSshCommand extends SshCommand { + + void println(String msg) { + stdout.println msg + stdout.flush() + } +} + @Export("projects") -class WarmProjectsCache extends SshCommand { +class WarmProjectsCache extends BaseSshCommand { @Inject ProjectCache cache public void run() { - stdout.println "Loading project list ..." + println "Loading project list ..." def start = System.currentTimeMillis() - stdout.flush() def allProjects = cache.all() def totProjects = allProjects.size() def loaded = 0 for ( project in allProjects ) { - cache.get(project.get()) + cache.get(project) loaded++ if (loaded%1000==0) { - stdout.println "$loaded of $totProjects projects" - stdout.flush() + println "$loaded of $totProjects projects" } } def elapsed = (System.currentTimeMillis()-start)/1000 - - stdout.println "$loaded projects loaded in $elapsed secs" + println "$loaded projects loaded in $elapsed secs" } } +commands = [ WarmProjectsCache ] +