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 ]
+