function Test-IsAdmin { try { $identity = [Security.Principal.WindowsIdentity]::GetCurrent() $principal = New-Object Security.Principal.WindowsPrincipal -ArgumentList $identity return $principal.IsInRole( [Security.Principal.WindowsBuiltInRole]::Administrator ) } catch { throw "Failed to determine if the current user has elevated privileges. The error was: '{0}'." -f $_ } <# .SYNOPSIS Checks if the current Powershell instance is running with elevated privileges or not. .EXAMPLE PS C:\> Test-IsAdmin .OUTPUTS System.Boolean True if the current Powershell is elevated, false if not. #> } function Pick-One { [CmdletBinding()] param( [String[]]$options ); $rand = Get-Random -Minimum 0 -Maximum $options.Length; foreach ($option in $options) { if($option -eq $options[$rand]) { Write-Host -ForegroundColor Green '=> ' $option; } else { Write-Host ' ' $option -ForegroundColor DarkGray; } } } function Prepend-LineNumbers { [CmdletBinding()] param( [Parameter(ValueFromPipeline=$true)]$input, [int]$pad = 4 ); $line = 0; $input | % { $line++; $line.ToString().PadLeft($pad, ' ') + " $_" } } function Fix-Colors { [System.Console]::ForegroundColor = [System.ConsoleColor]::White; [System.Console]::BackgroundColor = [System.ConsoleColor]::Black; $escape = [char]27 echo "$escape[0m" } function Upload-File { param([string]$Path) sharex $(Resolve-Path $Path) } function Set-VsVars { [CmdletBinding()] param( [Parameter(Mandatory=$true, HelpMessage="Enter VS version as 2010, 2012, 2013, 2015, 2017, 2017-BuildTools")] [ValidateSet(2010,2012,2013,2015,2017,'2017-BuildTools')] [string]$Version, [Parameter(Mandatory=$false, HelpMessage="Architecture either x64, x86 or arm (2017 only)")] [Alias('Arch')] [ValidateSet('x64', 'x86', 'arm')] [string]$Architecture ) $VS_VERSION = @{ 2010 = " 10.0"; 2012 = " 11.0"; 2013 = " 12.0"; 2015 = " 14.0"; 2017 = "\2017\Community"; '2017-BuildTools' = '\2017\BuildTools' } if($version -ge 2015) { $targetDir = "c:\Program Files (x86)\Microsoft Visual Studio$($VS_VERSION[$version])\Common7\Tools" $vcvars = "VsDevCmd.bat" if ($Architecture) { $params = ' -arch=' + $Architecture } } else { $targetDir = "c:\Program Files (x86)\Microsoft Visual Studio$($VS_VERSION[$version])\VC" $vcvars = "vcvarsall.bat" if($Architecture -eq 'x64') { $Architecture = 'x86_64'; } if ($Architecture) { $params = ' ' + $Architecture } } if (!(Test-Path (Join-Path $targetDir $vcvars))) { "Error: Visual Studio $version not installed" return } $command = $vcvars + $params pushd $targetDir Write-Verbose "$command & set" cmd /c "$command & set" | % { if ($_ -match "(.*?)=(.*)") { Write-Verbose $_ Set-Item -force -path "ENV:\$($matches[1])" -value "$($matches[2])" } } popd write-host "`nVisual Studio $version Command Prompt variables set." -ForegroundColor Yellow } function Import-VariablesFromCmd { [CmdletBinding()] param([string]$path) cmd /c $path + "&set" | % { if ($_ -match "(.*?)=(.*)") { Write-Verbose $_ Set-Item -force -path "ENV:\$($matches[1])" -value "$($matches[2])" } } } # not working, will get fixed eventually function Out-PasteBin { [CmdletBinding()] param( [Parameter( Position=0, ValueFromPipeline=$true, parametersetname='nopipeline' )][string] $File, [Parameter( Position=1, ValueFromPipelineByPropertyName=$true )][string] $Language, [Parameter( ValueFromPipelineByPropertyName=$true )][string] $Author, [Parameter( ValueFromPipelineByPropertyName=$true )][string] $Title, [Parameter( ValueFromPipelineByPropertyName=$true )][string] $Key = $global:PastebinKey ) Begin { $pipeline = -not ($PSCmdlet.ParameterSetName -eq 'nopipeline'); } Process { $Source += $_ + "`n"; } End { $paste = if ($pipeline) { $Source } else { cat $File | Out-String } return (Invoke-WebRequest bin.kadet.net -Method Post -MaximumRedirection 0 -ErrorAction SilentlyContinue -Body @{ author=$Author; key=$Key; title=$Title; language=$Language; paste=$paste; }) } } function ~ { cd ~ @args; } function .. { cd .. @args; } function Run-Box { php '-dphar.readonly=0' "D:\Software\box.phar" @args; } function Run-Symfony { $path = if (Test-Path ./bin/console) { "./bin/console" } elseif (Test-Path ./app/console) { "./app/console" } else { throw "oh die" }; php $path @args; } function Run-Artisan { php artisan @args; }