77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| $package = 'Posh-GitHub'
 | |
| $version = '0.0.1'
 | |
| 
 | |
| function Get-CurrentDirectory
 | |
| {
 | |
|   $thisName = $MyInvocation.MyCommand.Name
 | |
|   [IO.Path]::GetDirectoryName((Get-Content function:$thisName).File)
 | |
| }
 | |
| 
 | |
| try {
 | |
|   $current = Get-CurrentDirectory
 | |
|   . (Join-Path $current 'PowerShellHelpers.ps1')
 | |
|   . (Join-Path $current 'EncodingHelpers.ps1')
 | |
| 
 | |
|   # find user specific module directory
 | |
|   $moduleDirectory = Get-ModuleDirectory
 | |
|   $installDirectory = Join-Path $moduleDirectory $package
 | |
| 
 | |
|   # unload module if its already loaded
 | |
|   Get-Module -Name $package | Remove-Module
 | |
| 
 | |
|   try
 | |
|   {
 | |
|     if (Test-Path($installDirectory))
 | |
|     {
 | |
|       Remove-Item $installDirectory -Recurse -Force
 | |
|     }
 | |
|   }
 | |
|   catch
 | |
|   {
 | |
|     Write-Host "Could not remove existing $package folder"
 | |
|   }
 | |
| 
 | |
|   Write-Host "Installing $package to $installDirectory..."
 | |
|   $params = @{
 | |
|     PackageName = $package;
 | |
|     Url = "https://github.com/Iristyle/Posh-GitHub/zipball/$version";
 | |
|     UnzipLocation = $moduleDirectory;
 | |
|   }
 | |
| 
 | |
|   Install-ChocolateyZipPackage @params
 | |
| 
 | |
|   # github tarballs are versioned and we don't want that ;0
 | |
|   Get-ChildItem -Path $moduleDirectory |
 | |
|     ? { $_.Name -match 'Posh\-GitHub' } |
 | |
|     Sort-Object -Property CreationTime -Descending |
 | |
|     Select -First 1 |
 | |
|     Rename-Item -NewName $installDirectory
 | |
| 
 | |
|   if (!(Test-Path $PROFILE))
 | |
|   {
 | |
|     $profileRoot = Split-Path $PROFILE
 | |
|     New-Item -Path $profileRoot -Type Directory -ErrorAction SilentlyContinue
 | |
|     Set-Content -Path $PROFILE -Value '' -Force -Encoding UTF8
 | |
|   }
 | |
| 
 | |
|   if (!(Select-String -Pattern 'Posh\-GitHub\-Profile\.ps1' -Path $PROFILE))
 | |
|   {
 | |
|     $loaderFile = 'Posh-GitHub-Profile.ps1'
 | |
|     "`n`n# Load Posh-GitHub`n. '$installDirectory\$loaderFile'" |
 | |
|       Out-File -FilePath $PROFILE -Append -Encoding (Get-FileEncoding $PROFILE)
 | |
|     . $PROFILE
 | |
| 
 | |
|     Write-Host -ForegroundColor DarkMagenta @'
 | |
|     Reload the current profile to access Posh-Github with:
 | |
|     . $PROFILE
 | |
| '@
 | |
|   }
 | |
| 
 | |
|   Write-ChocolateySuccess $package
 | |
| }
 | |
| catch
 | |
| {
 | |
|   Write-ChocolateyFailure $package "$($_.Exception.Message)"
 | |
|   throw
 | |
| }
 |