// Create variables with empty default values
ext["ossrhUsername"] = ''
ext["ossrhPassword"] = ''
ext["sonatypeStagingProfileId"] = ''
ext["signing.keyId"] = '0C762F0D'
ext["signing.password"] = 'dsLCfZhaoHbgqgNeRHuAY'
ext["signing.secretKeyRingFile"] = '../secret.gpg'

File secretPropsFile = project.rootProject.file('local.properties')
if (secretPropsFile.exists()) {
  // Read local.properties file first if it exists
  Properties p = new Properties()
  new FileInputStream(secretPropsFile).withCloseable { is -> p.load(is) }
  p.each { name, value -> ext[name] = value }
} else {
  // Use system environment variables
  ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME')
  ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD')
  ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID')
  ext["signing.keyId"] = System.getenv('GPG_KEY_NAME')
  ext["signing.password"] = System.getenv('GPG_PASSPHRASE')
  ext["signing.secretKeyRingFile"] = System.getenv('SIGNING_SECRET_KEY_RING_FILE')
}

// Set up Sonatype repository
nexusPublishing {
  repositories {
    sonatype {
      stagingProfileId = sonatypeStagingProfileId
      username = ossrhUsername
      password = ossrhPassword
      nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
      snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
    }
  }
}