mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add shared functions to module_utils/powershell.ps1 and refactor powershell modules to utilize the common powershell code
This commit is contained in:
parent
bafa63b424
commit
a25c441300
11 changed files with 66 additions and 137 deletions
|
@ -27,4 +27,23 @@
|
|||
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# Helper function to parse Ansible JSON arguments from a file passed as
|
||||
# the single argument to the module
|
||||
Function Parse-Args($arguments)
|
||||
{
|
||||
$parameters = New-Object psobject;
|
||||
If ($arguments.Length -gt 0)
|
||||
{
|
||||
$parameters = Get-Content $arguments[0] | ConvertFrom-Json;
|
||||
}
|
||||
$parameters;
|
||||
}
|
||||
|
||||
# Helper function to set an "attribute" on a psobject instance in powershell.
|
||||
# This is a convenience to make adding Members to the object easier and
|
||||
# slightly more pythonic
|
||||
Function Set-Attr($obj, $name, $value)
|
||||
{
|
||||
$obj | Add-Member -Force -MemberType NoteProperty -Name $name -Value $value
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
# _______ _ _
|
||||
# |__ __| | (_)
|
||||
# | | | |__ _ ___
|
||||
# | | | '_ \| / __|
|
||||
# | | | | | | \__ \
|
||||
# __|_| |_| |_|_|___/
|
||||
# |_ _|
|
||||
# | | ___
|
||||
# | | / __|
|
||||
# _| |_\__ \
|
||||
# |___/\|___/
|
||||
# / \
|
||||
# / /\ \
|
||||
# / ____ \
|
||||
# /_/ \_\
|
||||
# | |
|
||||
# | | __ _ _ __ __ _ ___
|
||||
# | | / _` | '__/ _` |/ _ \
|
||||
# | |___| (_| | | | (_| | __/
|
||||
# |______\__,_|_| \__, |\___|
|
||||
# __/ |
|
||||
# ____ _ |___/
|
||||
# | _ \| | | |
|
||||
# | |_) | | ___ ___| | __
|
||||
# | _ <| |/ _ \ / __| |/ /
|
||||
# | |_) | | (_) | (__| <
|
||||
# |____/|_|\___/ \___|_|\_\
|
||||
# / __ \ / _|
|
||||
# | | | | |_
|
||||
# | | | | _|
|
||||
# | |__| | |
|
||||
# \____/|_| __ __
|
||||
# / ____| | / _|/ _|
|
||||
# | (___ | |_ _ _| |_| |_
|
||||
# \___ \| __| | | | _| _|
|
||||
# ____) | |_| |_| | | | |
|
||||
# |_____/ \__|\__,_|_| |_|
|
||||
# | | | |
|
||||
# | |_ _ ___| |_
|
||||
# _ | | | | / __| __|
|
||||
# | |__| | |_| \__ \ |_
|
||||
# \____/_\__,_|___/\__|
|
||||
# |__ __|
|
||||
# | | ___
|
||||
# | |/ _ \
|
||||
# | | (_) |
|
||||
# __|_|\___/ _
|
||||
# | \/ | | |
|
||||
# | \ / | __ _| | _____
|
||||
# | |\/| |/ _` | |/ / _ \
|
||||
# | | | | (_| | < __/
|
||||
# |_|__|_|\__,_|_|\_\___|
|
||||
# |__ __| |
|
||||
# | | | |__ ___
|
||||
# | | | '_ \ / _ \
|
||||
# | | | | | | __/
|
||||
# __|_|_ |_| |_|\___|
|
||||
# | ____(_) |
|
||||
# | |__ _| | ___
|
||||
# | __| | | |/ _ \
|
||||
# | | | | | __/
|
||||
# |_|__ |_|_|\___|
|
||||
# | _ \(_)
|
||||
# | |_) |_ __ _ __ _ ___ _ __
|
||||
# | _ <| |/ _` |/ _` |/ _ \ '__|
|
||||
# | |_) | | (_| | (_| | __/ |
|
||||
# |____/|_|\__, |\__, |\___|_|
|
||||
# __/ | __/ |
|
||||
# |___/ |___/
|
15
library/windows/win_ping.ps1
Normal file
15
library/windows/win_ping.ps1
Normal file
|
@ -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;
|
Loading…
Reference in a new issue