Public/Install-DotNetScript.ps1
<#
.SYNOPSIS Installs dotnet-script (https://github.com/filipw/dotnet-script) .DESCRIPTION See .SYNOPSIS .NOTES .EXAMPLE # Launch PowerShell and ... PS C:\Users\zeroadmin> Install-DotNetScript #> function Install-DotNetScript { [CmdletBinding()] Param () if (!$(Get-Command dotnet -ErrorAction SilentlyContinue)) { Write-Error "Unable to find the 'dotnet' binary! Halting!" $global:FunctionResult = "1" return } dotnet tool install -g dotnet-script # $HOME/.dotnet/tools $DirSep = [System.IO.Path]::DirectorySeparatorChar $DotNetToolsDir = $HOME + $DirSep + '.dotnet' + $DirSep + 'tools' $PathSeparatorChar = if ($PSVersionTable.Platform -eq "Unix" -or $PSVersionTable.OS -match "Darwin") {':'} else {';'} [System.Collections.Arraylist][array]$CurrentEnvPathArray = $env:PATH -split $PathSeparatorChar | Where-Object {![System.String]::IsNullOrWhiteSpace($_)} | Sort-Object | Get-Unique if ($CurrentEnvPathArray -notcontains $DotNetToolsDir) { $CurrentEnvPathArray.Insert(0,$DotNetToolsDir) $env:PATH = $CurrentEnvPathArray -join $PathSeparatorChar } if ($PSVersionTable.Platform -eq "Unix" -or $PSVersionTable.OS -match "Darwin") { $PathCheckforProfile = @" [[ ":`$PATH:" != *":$DotNetToolsDir`:"* ]] && PATH="$DotNetToolsDir`:`${PATH}" "@ $ProfileContent = Get-Content "$HOME/.profile" if (!$($ProfileContent -match 'dotnet/tools')) { Add-Content -Path "$HOME/.profile" -Value $PathCheckforProfile } } if (!$(Get-Command dotnet-script -ErrorAction SilentlyContinue)) { Write-Error "Something went wrong during installation of 'dotnet-script' via the dotnet cli. Please review the above output. Halting!" $global:FunctionResult = "1" return } } |