- 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
49 lines
1.4 KiB
PowerShell
49 lines
1.4 KiB
PowerShell
$package = 'EthanBrown.SublimeText2.EditorPackages'
|
|
|
|
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
|
|
'BracketHighlighter.sublime-settings',
|
|
'EasyMotion.sublime-settings',
|
|
'MarkdownPreview.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-ChocolateySuccess $package
|
|
} catch {
|
|
Write-ChocolateyFailure $package "$($_.Exception.Message)"
|
|
throw
|
|
}
|