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

scala.cli.commands.publish.checks.CheckUtils.scala Maven / Gradle / Ivy

package scala.cli.commands.publish.checks

import java.net.URI

import scala.build.Logger
import scala.build.options.PublishOptions as BPublishOptions
import scala.cli.commands.publish.{PublishSetupOptions, RepoParams}

object CheckUtils {

  /** Keep in mind that combinedOptions do not contain all options from cliOptions, e.g.
    * publishRepo.publishRepository is not propagated
    */
  def getRepoOpt(
    cliOptions: PublishSetupOptions,
    combinedOptions: BPublishOptions
  ): Option[String] =
    cliOptions.publishRepo.publishRepository
      .orElse {
        combinedOptions.contextual(cliOptions.publishParams.setupCi).repository
      }
      .orElse {
        if (cliOptions.publishParams.setupCi)
          combinedOptions.contextual(isCi = false).repository
        else
          None
      }

  def getHostOpt(
    options: PublishSetupOptions,
    pubOpt: BPublishOptions,
    workspace: os.Path,
    logger: Logger
  ): Option[String] =
    getRepoOpt(options, pubOpt).flatMap { repo =>
      RepoParams(
        repo,
        pubOpt.versionControl.map(_.url),
        workspace,
        None,
        false,
        null,
        logger
      ) match {
        case Left(ex) =>
          logger.debug("Caught exception when trying to compute host to check user credentials")
          logger.debug(ex)
          None
        case Right(params) =>
          Some(new URI(params.repo.snapshotRepo.root).getHost)
      }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy