All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.cli.util.MaybeConfigPasswordOption.scala Maven / Gradle / Ivy

package scala.cli.util

import scala.build.options.publish.ConfigPasswordOption
import scala.cli.signing.shared.PasswordOption

/** Can be either a [[PasswordOption]], or something like "config:…" pointing at a config entry */
sealed abstract class MaybeConfigPasswordOption extends Product with Serializable {
  def configPasswordOptions() =
    this match {
      case MaybeConfigPasswordOption.ActualOption(option) =>
        ConfigPasswordOption.ActualOption(option)
      case MaybeConfigPasswordOption.ConfigOption(fullName) =>
        ConfigPasswordOption.ConfigOption(fullName)
    }
}

object MaybeConfigPasswordOption {
  final case class ActualOption(option: PasswordOption) extends MaybeConfigPasswordOption
  final case class ConfigOption(fullName: String)       extends MaybeConfigPasswordOption

  def parse(input: String): Either[String, MaybeConfigPasswordOption] =
    if (input.startsWith("config:"))
      Right(ConfigOption(input.stripPrefix("config:")))
    else
      PasswordOption.parse(input).map(ActualOption(_))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy