blob: fe6bdbddaa295b8e74efe8680b78f162700dc4be [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License
# Stop on all errors
$ErrorActionPreference = 'Stop';
# Package Name
$packageName = $Env:chocolateyPackageName
# Package Version
$packageVersion = $Env:chocolateyPackageVersion
# Package Folder
$packageFolder = $Env:chocolateyPackageFolder
# Package Parameters
$packageParameters = $env:chocolateyPackageParameters
$arguments = @{}
$ambariRoot = "C:\ambari"
$retries = 5
# Parse the packageParameters
# /AmbariRoot:C:\ambari /Retries:5
if ($packageParameters) {
$match_pattern = "\/(?<option>([a-zA-Z]+)):(?<value>([`"'])?([a-zA-Z0-9- _\\:\.]+)([`"'])?)|\/(?<option>([a-zA-Z]+))"
$option_name = 'option'
$value_name = 'value'
if ($packageParameters -match $match_pattern ){
$results = $packageParameters | Select-String $match_pattern -AllMatches
$results.matches | % {
$arguments.Add(
$_.Groups[$option_name].Value.Trim(),
$_.Groups[$value_name].Value.Trim())
}
} else {
Throw "Package Parameters were found but were invalid (REGEX Failure)"
}
if ($arguments.ContainsKey("AmbariRoot")) {
Write-Debug "AmbariRoot Argument Found"
$ambariRoot = $arguments["AmbariRoot"]
}
if ($arguments.ContainsKey("Retries")) {
Write-Debug "Retries Argument Found"
$retries = $arguments["Retries"]
}
} else {
Write-Debug "No Package Parameters Passed in"
}
$modulesFolder = "$(Join-Path $packageFolder modules)"
$contentFolder = "$(Join-Path $packageFolder content)"
$link = "$ambariRoot\$packageName"
$target = "$ambariRoot\$packageName-$packageVersion"
Import-Module "$modulesFolder\link.psm1"
Import-Module "$modulesFolder\retry.psm1"
Retry-Command -Command "Remove-Symlink-IfExists" -Arguments @{Link = $link} -Retries $retries
Retry-Command -Command "Remove-Item" -Arguments @{ Path = $target; Recurse = $true; Force = $true }