Merge pull request #1077 from blakfeld/fix_win_unzip

Made win_unzip Powershell Strict Complient
reviewable/pr18780/r1
Brian Coca 9 years ago
commit 3ca2c51ed9

@ -19,6 +19,7 @@
# WANT_JSON
# POWERSHELL_COMMON
$params = Parse-Args $args;
$result = New-Object psobject @{
@ -26,64 +27,46 @@ $result = New-Object psobject @{
changed = $false
}
If ($params.creates) {
$creates = Get-AnsibleParam -obj $params -name "creates"
If ($creates -ne $null) {
If (Test-Path $params.creates) {
Exit-Json $result "The 'creates' file or directory already exists."
}
}
If ($params.src) {
$src = $params.src.toString()
If (-Not (Test-Path -path $src)){
Fail-Json $result "src file: $src does not exist."
}
$ext = [System.IO.Path]::GetExtension($src)
}
Else {
Fail-Json $result "missing required argument: src"
$src = Get-AnsibleParam -obj $params -name "src" -failifempty $true
If (-Not (Test-Path -path $src)){
Fail-Json $result "src file: $src does not exist."
}
If (-Not($params.dest -eq $null)) {
$dest = $params.dest.toString()
$ext = [System.IO.Path]::GetExtension($src)
If (-Not (Test-Path $dest -PathType Container)){
Try{
New-Item -itemtype directory -path $dest
}
Catch {
Fail-Json $result "Error creating $dest directory"
}
}
}
Else {
Fail-Json $result "missing required argument: dest"
}
If ($params.recurse) {
$recurse = ConvertTo-Bool ($params.recurse)
}
Else {
$recurse = $false
$dest = Get-AnsibleParam -obj $params -name "dest" -failifempty $true
If (-Not (Test-Path $dest -PathType Container)){
Try{
New-Item -itemtype directory -path $dest
}
Catch {
$err_msg = $_.Exception.Message
Fail-Json $result "Error creating $dest directory! Msg: $err_msg"
}
}
If ($params.rm) {
$rm = ConvertTo-Bool ($params.rm)
}
Else {
$rm = $false
}
$recurse = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "recurse" -default "false")
$rm = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "rm" -default "false")
If ($ext -eq ".zip" -And $recurse -eq $false) {
Try {
$shell = New-Object -ComObject Shell.Application
$shell.NameSpace($dest).copyhere(($shell.NameSpace($src)).items(), 20)
$zipPkg = $shell.NameSpace($src)
$destPath = $shell.NameSpace($dest)
$destPath.CopyHere($zipPkg.Items())
$result.changed = $true
}
Catch {
Fail-Json $result "Error unzipping $src to $dest"
$err_msg = $_.Exception.Message
Fail-Json $result "Error unzipping $src to $dest! Msg: $err_msg"
}
}
# Requires PSCX
@ -127,11 +110,12 @@ Else {
}
}
Catch {
$err_msg = $_.Exception.Message
If ($recurse) {
Fail-Json $result "Error recursively expanding $src to $dest"
Fail-Json $result "Error recursively expanding $src to $dest! Msg: $err_msg"
}
Else {
Fail-Json $result "Error expanding $src to $dest"
Fail-Json $result "Error expanding $src to $dest! Msg: $err_msg"
}
}
}
@ -154,4 +138,4 @@ Set-Attr $result.win_unzip "src" $src.toString()
Set-Attr $result.win_unzip "dest" $dest.toString()
Set-Attr $result.win_unzip "recurse" $recurse.toString()
Exit-Json $result;
Exit-Json $result;

Loading…
Cancel
Save