Setup-Profile will update git scripts from git repo
This commit is contained in:
parent
f4abdf1a2d
commit
306e03874d
|
@ -3,7 +3,7 @@
|
||||||
[switch]$RemoveOnly,
|
[switch]$RemoveOnly,
|
||||||
[switch]$ShowSkipped,
|
[switch]$ShowSkipped,
|
||||||
[switch]$Force,
|
[switch]$Force,
|
||||||
[switch]$NoGitClone,
|
[switch]$NoGitAction,
|
||||||
[string]$GitURL = 'https://code.lksz.me/lksz/PowerShell_Scripts',
|
[string]$GitURL = 'https://code.lksz.me/lksz/PowerShell_Scripts',
|
||||||
[Parameter(DontShow)]
|
[Parameter(DontShow)]
|
||||||
[string]$My_PSScriptRoot = $MyPSScriptRoot
|
[string]$My_PSScriptRoot = $MyPSScriptRoot
|
||||||
|
@ -15,7 +15,7 @@ function _Setup {
|
||||||
[switch]$RemoveOnly,
|
[switch]$RemoveOnly,
|
||||||
[switch]$ShowSkipped,
|
[switch]$ShowSkipped,
|
||||||
[switch]$Force,
|
[switch]$Force,
|
||||||
[switch]$NoGitClone,
|
[switch]$NoGitAction,
|
||||||
[string]$GitURL = 'https://code.lksz.me/lksz/PowerShell_Scripts',
|
[string]$GitURL = 'https://code.lksz.me/lksz/PowerShell_Scripts',
|
||||||
[Parameter(DontShow)]
|
[Parameter(DontShow)]
|
||||||
[string]$My_PSScriptRoot = $MyPSScriptRoot)
|
[string]$My_PSScriptRoot = $MyPSScriptRoot)
|
||||||
|
@ -43,12 +43,14 @@ Get-Command Reload-MyScripts -ErrorAction SilentlyContinue | ForEach-Object { .
|
||||||
. ProfileCode_common
|
. ProfileCode_common
|
||||||
if( -not $MyPSScriptRoot ) { throw '$MyPSScriptRoot does NOT exist!' }
|
if( -not $MyPSScriptRoot ) { throw '$MyPSScriptRoot does NOT exist!' }
|
||||||
|
|
||||||
if ( -not $NoGitClone -and -not (Test-Path $(Join-Path $MyPSScriptRoot '.git')) ) {
|
if ( -not $NoGitAction ) {
|
||||||
if ( -not [bool]$(Get-Command git -ErrorAction SilentlyContinue) ) {
|
if ( -not [bool]$(Get-Command git -ErrorAction SilentlyContinue) ) {
|
||||||
throw "No git command found, you may either omit run with the -NoGitClone switch or install git and try again."
|
throw "No git command found, you may either omit run with the -NoGitAction switch or install git and try again."
|
||||||
}
|
}
|
||||||
if ( $PSCmdlet.ShouldProcess("Pull git repo from $GitURL into $MyPSScriptRoot ?") ) {
|
Push-Location $MyPSScriptRoot
|
||||||
Push-Location $MyPSScriptRoot
|
if( Test-Path $(Join-Path $MyPSScriptRoot '.git') ) {
|
||||||
|
git pull
|
||||||
|
} elseif ( $PSCmdlet.ShouldProcess("Pull git repo from $GitURL into $MyPSScriptRoot ?") ) {
|
||||||
$local:tmpGitDir = New-TemporaryFile
|
$local:tmpGitDir = New-TemporaryFile
|
||||||
Remove-Item $tmpGitDir
|
Remove-Item $tmpGitDir
|
||||||
New-Item -Type Directory $tmpGitDir.FullName | Out-Null
|
New-Item -Type Directory $tmpGitDir.FullName | Out-Null
|
||||||
|
@ -61,9 +63,9 @@ Get-Command Reload-MyScripts -ErrorAction SilentlyContinue | ForEach-Object { .
|
||||||
Write-Verbose "Checking out repo..."
|
Write-Verbose "Checking out repo..."
|
||||||
$GitOutput = "$(& git checkout --force)"
|
$GitOutput = "$(& git checkout --force)"
|
||||||
Write-Verbose $GitOutput
|
Write-Verbose $GitOutput
|
||||||
Pop-Location
|
|
||||||
Write-Verbose "Git clone done."
|
|
||||||
}
|
}
|
||||||
|
Pop-Location
|
||||||
|
Write-Verbose "Git operation done."
|
||||||
}
|
}
|
||||||
|
|
||||||
$local:ProfileSignature = [PSCustomObject]([ordered]@{
|
$local:ProfileSignature = [PSCustomObject]([ordered]@{
|
||||||
|
@ -421,5 +423,6 @@ $SetupFromWeb = [bool]$(@( $SetupFromWeb, $sfw, $LoadCode ) | Where-Object { $_
|
||||||
if ( -not $SetupFromWeb ) {
|
if ( -not $SetupFromWeb ) {
|
||||||
_setup @PSBoundParameters
|
_setup @PSBoundParameters
|
||||||
Get-Item function:_setup | Remove-Item
|
Get-Item function:_setup | Remove-Item
|
||||||
|
Get-Command Reload-MyScripts -ErrorAction SilentlyContinue | ForEach-Object { . $_.Name }
|
||||||
}
|
}
|
||||||
Remove-Variable SetupFromWeb -ErrorAction SilentlyContinue
|
Remove-Variable SetupFromWeb -ErrorAction SilentlyContinue
|
||||||
|
|
Loading…
Reference in New Issue