From 4268cb6a2d50ec1a2de0e3f095585ef530414718 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Tue, 17 Jun 2014 18:20:33 -0500 Subject: [PATCH] Add shared functions to module_utils/powershell.ps1 and refactor powershell modules to utilize the common powershell code --- windows/assemble.ps1 | 8 ++-- windows/async_wrapper.ps1 | 8 ++-- windows/command.ps1 | 8 ++-- windows/copy.ps1 | 8 ++-- windows/file.ps1 | 8 ++-- windows/ping.ps1 | 8 ++-- windows/slurp.ps1 | 11 ++--- windows/stat.ps1 | 23 +++++------ windows/win_ping | 87 --------------------------------------- windows/win_ping.ps1 | 15 +++++++ 10 files changed, 47 insertions(+), 137 deletions(-) delete mode 100644 windows/win_ping create mode 100644 windows/win_ping.ps1 diff --git a/windows/assemble.ps1 b/windows/assemble.ps1 index dc95d1b9f53..90266a9e6be 100644 --- a/windows/assemble.ps1 +++ b/windows/assemble.ps1 @@ -1,13 +1,11 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $data = 'FIXME'; $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name fixme -Value $data; +Set-Attr $result "fixme" $data; echo $result | ConvertTo-Json; diff --git a/windows/async_wrapper.ps1 b/windows/async_wrapper.ps1 index dc95d1b9f53..90266a9e6be 100644 --- a/windows/async_wrapper.ps1 +++ b/windows/async_wrapper.ps1 @@ -1,13 +1,11 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $data = 'FIXME'; $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name fixme -Value $data; +Set-Attr $result "fixme" $data; echo $result | ConvertTo-Json; diff --git a/windows/command.ps1 b/windows/command.ps1 index dc95d1b9f53..90266a9e6be 100644 --- a/windows/command.ps1 +++ b/windows/command.ps1 @@ -1,13 +1,11 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $data = 'FIXME'; $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name fixme -Value $data; +Set-Attr $result "fixme" $data; echo $result | ConvertTo-Json; diff --git a/windows/copy.ps1 b/windows/copy.ps1 index dc95d1b9f53..90266a9e6be 100644 --- a/windows/copy.ps1 +++ b/windows/copy.ps1 @@ -1,13 +1,11 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $data = 'FIXME'; $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name fixme -Value $data; +Set-Attr $result "fixme" $data; echo $result | ConvertTo-Json; diff --git a/windows/file.ps1 b/windows/file.ps1 index dc95d1b9f53..90266a9e6be 100644 --- a/windows/file.ps1 +++ b/windows/file.ps1 @@ -1,13 +1,11 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $data = 'FIXME'; $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name fixme -Value $data; +Set-Attr $result "fixme" $data; echo $result | ConvertTo-Json; diff --git a/windows/ping.ps1 b/windows/ping.ps1 index 8e5fc1f2c9e..5550092a416 100644 --- a/windows/ping.ps1 +++ b/windows/ping.ps1 @@ -1,10 +1,8 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $data = 'pong'; If ($params.data.GetType) @@ -13,5 +11,5 @@ If ($params.data.GetType) } $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name ping -Value $data; +Set-Attr $result "ping" $data; echo $result | ConvertTo-Json; diff --git a/windows/slurp.ps1 b/windows/slurp.ps1 index 6678b9a8d84..041e678d52a 100644 --- a/windows/slurp.ps1 +++ b/windows/slurp.ps1 @@ -1,11 +1,8 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -$params = New-Object psobject; -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $src = ''; If ($params.src.GetType) @@ -28,6 +25,6 @@ $bytes = [System.IO.File]::ReadAllBytes($src); $content = [System.Convert]::ToBase64String($bytes); $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name content -Value $content; -$result | Add-Member -MemberType NoteProperty -Name encoding -Value 'base64'; +Set-Attr $result "content" $content; +Set-Attr $result "encoding" "base64"; echo $result | ConvertTo-Json; diff --git a/windows/stat.ps1 b/windows/stat.ps1 index 14e00d8f552..b7654a10108 100644 --- a/windows/stat.ps1 +++ b/windows/stat.ps1 @@ -1,11 +1,8 @@ #!powershell # WANT_JSON +# POWERSHELL_COMMON -$params = New-Object psobject; -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} +$params = Parse-Args $args; $path = ''; If ($params.path.GetType) @@ -22,30 +19,30 @@ If ($params.get_md5.GetType) $stat = New-Object psobject; If (Test-Path $path) { - $stat | Add-Member -MemberType NoteProperty -Name exists -Value $TRUE; + Set-Attr $stat "exists" $TRUE; $info = Get-Item $path; If ($info.Directory) # Only files have the .Directory attribute. { - $stat | Add-Member -MemberType NoteProperty -Name isdir -Value $FALSE; - $stat | Add-Member -MemberType NoteProperty -Name size -Value $info.Length; + Set-Attr $stat "isdir" $FALSE; + Set-Attr $stat "size" $info.Length; } Else { - $stat | Add-Member -MemberType NoteProperty -Name isdir -Value $TRUE; + Set-Attr $stat "isdir" $TRUE; } } Else { - $stat | Add-Member -MemberType NoteProperty -Name exists -Value $FALSE; + Set-Attr $stat "exists" $FALSE; } If ($get_md5 -and $stat.exists -and -not $stat.isdir) { $path_md5 = (Get-FileHash -Path $path -Algorithm MD5).Hash.ToLower(); - $stat | Add-Member -MemberType NoteProperty -Name md5 -Value $path_md5; + Set-Attr $stat "md5" $path_md5; } $result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name stat -Value $stat; -$result | Add-Member -MemberType NoteProperty -Name changed -Value $FALSE; +Set-Attr $result "stat" $stat; +Set-Attr $result "changed" $FALSE; echo $result | ConvertTo-Json; diff --git a/windows/win_ping b/windows/win_ping deleted file mode 100644 index c8e3042dee6..00000000000 --- a/windows/win_ping +++ /dev/null @@ -1,87 +0,0 @@ -#!powershell -# WANT_JSON - -If ($args.Length -gt 0) -{ - $params = Get-Content $args[0] | ConvertFrom-Json; -} - -$data = 'pong'; -If ($params.data.GetType) -{ - $data = $params.data; -} - -$result = New-Object psobject; -$result | Add-Member -MemberType NoteProperty -Name ping -Value $data; -echo $result | ConvertTo-Json; - -# _______ _ _ -# |__ __| | (_) -# | | | |__ _ ___ -# | | | '_ \| / __| -# | | | | | | \__ \ -# __|_| |_| |_|_|___/ -# |_ _| -# | | ___ -# | | / __| -# _| |_\__ \ -# |___/\|___/ -# / \ -# / /\ \ -# / ____ \ -# /_/ \_\ -# | | -# | | __ _ _ __ __ _ ___ -# | | / _` | '__/ _` |/ _ \ -# | |___| (_| | | | (_| | __/ -# |______\__,_|_| \__, |\___| -# __/ | -# ____ _ |___/ -# | _ \| | | | -# | |_) | | ___ ___| | __ -# | _ <| |/ _ \ / __| |/ / -# | |_) | | (_) | (__| < -# |____/|_|\___/ \___|_|\_\ -# / __ \ / _| -# | | | | |_ -# | | | | _| -# | |__| | | -# \____/|_| __ __ -# / ____| | / _|/ _| -# | (___ | |_ _ _| |_| |_ -# \___ \| __| | | | _| _| -# ____) | |_| |_| | | | | -# |_____/ \__|\__,_|_| |_| -# | | | | -# | |_ _ ___| |_ -# _ | | | | / __| __| -# | |__| | |_| \__ \ |_ -# \____/_\__,_|___/\__| -# |__ __| -# | | ___ -# | |/ _ \ -# | | (_) | -# __|_|\___/ _ -# | \/ | | | -# | \ / | __ _| | _____ -# | |\/| |/ _` | |/ / _ \ -# | | | | (_| | < __/ -# |_|__|_|\__,_|_|\_\___| -# |__ __| | -# | | | |__ ___ -# | | | '_ \ / _ \ -# | | | | | | __/ -# __|_|_ |_| |_|\___| -# | ____(_) | -# | |__ _| | ___ -# | __| | | |/ _ \ -# | | | | | __/ -# |_|__ |_|_|\___| -# | _ \(_) -# | |_) |_ __ _ __ _ ___ _ __ -# | _ <| |/ _` |/ _` |/ _ \ '__| -# | |_) | | (_| | (_| | __/ | -# |____/|_|\__, |\__, |\___|_| -# __/ | __/ | -# |___/ |___/ diff --git a/windows/win_ping.ps1 b/windows/win_ping.ps1 new file mode 100644 index 00000000000..5550092a416 --- /dev/null +++ b/windows/win_ping.ps1 @@ -0,0 +1,15 @@ +#!powershell +# WANT_JSON +# POWERSHELL_COMMON + +$params = Parse-Args $args; + +$data = 'pong'; +If ($params.data.GetType) +{ + $data = $params.data; +} + +$result = New-Object psobject; +Set-Attr $result "ping" $data; +echo $result | ConvertTo-Json;