//Snowchange versioning
def getCurrentVersion(workdir) {
  return (sh(script: "find . -type f -printf '%f\\n' | egrep 'V[0-9].*' | awk -F'__' '{print \$1}' | sort -V | tail -1", , returnStdout: true).trim().substring(1))
}

def getVersion(branch,workdir) {
  switch(branch) {
    case "master":
    case ~/release.*$/:
      return getCurrentVersion(workdir)
    default:
      return ((getCurrentVersion(workdir) =~ /(\d+.\d+.\d+)/)[0][0] + octopus.getBuildSuffix())
  }
}

def setDeploymentEnv(deployEnvChoice, projectGroup, branch) {
  switch(deployEnvChoice) {
    case "default":
      return "skip_deployment"
    case "skip_deployment":
      return deployEnvChoice
    default:
      return (deployEnvChoice + " " + projectGroup)
  }
}

// V3 version for snowflake
def setZipPackagePipelineParams(failIfReleaseExists, projectPath, projectGroup, projectName) {
  // uses common environment variables to set parameter map for zipPackagePipeline method
  def params = [:]
  params.failIfReleaseExists = failIfReleaseExists
  // Common variables to parameters
  params.octopusChannel       = env.OCTOPUS_CHANNEL
  params.deployEnv            = env.DEPLOY_ENV
  params.zipPackageUploadMode = env.ZIP_PACKAGE_UPLOAD_MODE
  params.projectName          = projectName
  params.octopusProject       = "${projectGroup}.${params.projectName.replace('_','-')}"
  params.target               = "${env.WORKSPACE}/${projectPath}"
  params.version              = getVersion(env.BRANCH_NAME,params.target)

  return params
}
