Files
ChocolateyPackages/EthanBrown.SublimeText2.GitPackages/tools/chocolateyInstall.ps1
Iristyle 61724d2148 feat(sublime pkgs): use local cache of pkgs
- Sublime Package Control can run rampant with
    memory usage when installing 50+ new packages
    all at once, so prime it with a local cache instead
    of expecting everything to install on first startup
 - This also prevents all sorts of Sublime error dialogs
    as package setings are present, but packages may
    not exist yet
2013-04-04 09:41:59 -04:00

85 lines
2.5 KiB
PowerShell

$package = 'EthanBrown.SublimeText2.GitPackages'
function Get-CurrentDirectory
{
$thisName = $MyInvocation.MyCommand.Name
[IO.Path]::GetDirectoryName((Get-Content function:$thisName).File)
}
try {
$current = Get-CurrentDirectory
. (Join-Path $current 'JsonHelpers.ps1')
. (Join-Path $current 'SublimeHelpers.ps1')
$sublimeUserDataPath = Get-SublimeUserPath
#straight file copies
'Git Commit Message.sublime-settings',
'GitHub.sublime-settings',
'SideBarGit.sublime-settings' |
% {
$params = @{
Path = Join-Path $current $_;
Destination = Join-Path $sublimeUserDataPath $_;
Force = $true
}
Copy-Item @params
}
$packageCache = Join-Path (Get-CurrentDirectory) 'PackageCache'
Install-SublimePackagesFromCache -Directory $packageCache
Install-SublimePackageControl
$packageControl = Join-Path $current 'Package Control.sublime-settings'
Merge-PackageControlSettings -FilePath $packageControl
$preferences = Join-Path $current 'Preferences.sublime-settings'
Merge-Preferences -FilePath $preferences
if (Get-Process -Name sublime_text -ErrorAction SilentlyContinue)
{
Write-Warning 'Please close and re-open Sublime Text to force packages to update'
}
Write-Host @'
To take advantage of the GitHub Gist plugin, generate an OAuth token.
In Powershell this can be done by copying the following code into the shell:
function Setup-SublimeGitHub
{
$userName = Read-Host -Prompt "Enter GitHub Username"
$password = Read-Host -Prompt "Enter GitHub Password"
$postData = @{ scopes = @("repo"); note = "Sublime Plugin Token" }
$params = @{
Uri = "https://api.github.com/authorizations";
Method = "POST";
Headers = @{
Authorization = "Basic " + [Convert]::ToBase64String(
[Text.Encoding]::ASCII.GetBytes("$($userName):$($password)"));
}
ContentType = "application/json";
Body = (ConvertTo-Json $postData -Compress)
}
$GITHUB_API_OUTPUT = Invoke-RestMethod @params
$token = $GITHUB_API_OUTPUT | Select -ExpandProperty Token
Write-Host "New OAuth token is $token"
$configFile = "$ENV:APPDATA\Sublime Text 2\Packages\User\GitHub.sublime-settings"
$json = (Get-Content $configFile) -join "" | ConvertFrom-Json
$json.accounts.GitHub.github_token = $token
$json | ConvertTo-Json | Out-File $configFile -Force
}
Setup-SublimeGitHub
'@
Write-ChocolateySuccess $package
} catch {
Write-ChocolateyFailure $package "$($_.Exception.Message)"
throw
}