Libraries/Lib.Unix/Lib.Unix.psm1

<#
#>


$Script:NS = (get-item $PSCommandPath).basename

# force english language to prevent weird localized output
$env:LANG = "en_US.UTF-8"
$env:LANGUAGE = "en_US"

<#
.SYNOPSIS
Return a the commonly used name for an OS.
 
.DESCRIPTION
Return a the commonly used name for an OS.
 
.PARAMETER Online
True to specify to fetch information from the running OS
 
.PARAMETER Root
The path to the root of an OS.
 
.EXAMPLE
Get-OSName -Online
 
.EXAMPLE
Get-OSName -Root '/mnt/sda3'
 
.EXAMPLE
Get-OSName -Root 'F:\'
 
.NOTES
General notes
#>

function Get-OSName {
    [CmdletBinding()][OutputType([String])]Param (
        [Parameter(ParameterSetName = 'ONLINE')][switch]$Online,
        [Parameter(ParameterSetName = 'ROOT')][string]$Root
    )
    Begin {
        Write-PwShFwOSEnterFunction
    }

    Process {
        if ($Online) { $Root = '/' }
        $distrib = Get-OSDistrib -Root $Root
        $releaseId = Get-OSReleaseId -Root $Root
        # return $Distrib + "." + $ReleaseId.replace('.','')
        return "$Distrib $ReleaseId"
   }

    End {
        Write-PwShFwOSLeaveFunction
    }
}

<#
.SYNOPSIS
Simple ping to a destination on the network
 
.DESCRIPTION
Long description
 
.PARAMETER NameOrIP
Name or IPAddress of destination host to ping
 
.PARAMETER count
Optional number of echo request to send. Default to 1.
 
.EXAMPLE
Invoke-Ping -NameOrIP localhost
 
.EXAMPLE
Invoke-Ping -NameOrIP remote.server.domain.com -Count 1
 
#>

function Invoke-Ping {
    [CmdletBinding()]Param (
        [string]$NameOrIP = "localhost",
        [int]$count = 1,
        [int]$timeout = 1
    )
    Begin {
        Write-PwShFwOSEnterFunction
    }

    Process {
        ping -c $count -W $timeout $NameOrIP
        return $?
   }

    End {
        Write-PwShFwOSLeaveFunction
    }
}