plugin一覧を出力する

// インストールされているプラグイン一覧を取得する
def pluginList = new ArrayList(Jenkins.instance.pluginManager.plugins)
pluginList.sort { it.getShortName() }.each{
  plugin -> 
    println ("${plugin.getShortName()}:${plugin.getVersion()}")
}
 
// アップデート一覧を出力する
UpdateCenter uc = Jenkins.get().updateCenter
// UpdateSitesのデータ更新
uc.sites.each { site ->
    site.updateDirectlyNow()
}
 
def plugins = Jenkins.get().pluginManager.plugins
plugins.toSorted { l,r -> l.shortName < r.shortName ? -1 : 1 }.collect{ plugin -> 
  UpdateSite.Plugin updateSitePlugin = uc.getPlugin(plugin.shortName, plugin.versionNumber)
 
  if (plugin.hasUpdate()) {
    return """-- ${plugin.shortName}:${plugin.version}
+- ${plugin.shortName}:${updateSitePlugin.version}"""
  } else {
        return """ - ${plugin.shortName}:${plugin.version}"""
  }
  
}.each{
  p -> println(p)
}
 
println ""
def plugins = Jenkins.get().pluginManager.plugins
plugins.each {
    println "${it.shortName} (${it.version}) => ${it.dependencies}"
}
 
// graphvizを使ってgraphで表示する
def plugins = Jenkins.get().pluginManager.plugins
println "digraph test {"
plugins.each {
    def plugin = it.getShortName()
    println "\"${plugin}\";"
    def deps =  it.getDependencies()
    deps.each {
      def s = it.shortName
      println "\"${plugin}\" -> \"${s}\";"
    }
} 
println "}"