Introducing Packages
Major Overhaul with Breaking Changes split into packaged, default behavior moved into 'base' package each package has a json package description file with criteria for loading Modified Setup-Profile to refer to 'base' package path for auto loading moved Linux aliases and command to 'base.linux' package created 'docker' package to address docker supported systems modified Get-MyScripts, Edit-MyScripts and Reload-MyScripts accordingly. Dropped -System and sys.*, package json conditions will take care of it. Supplied command to create/edit package json files: - New-MyPackage - Add-PackageCondition - Set-MyPackage
This commit is contained in:
parent
80a488484b
commit
42b39f4e25
83 changed files with 505 additions and 130 deletions
31
base/Edit-TextFile.ps1
Normal file
31
base/Edit-TextFile.ps1
Normal file
|
@ -0,0 +1,31 @@
|
|||
[CmdletBinding(SupportsShouldProcess)]param(
|
||||
[switch]$sudo,
|
||||
[Parameter(Position = 0, ValueFromRemainingArguments = $true)]
|
||||
[string[]]$Path
|
||||
)
|
||||
|
||||
$local:editors = $env:EDITOR,'nvim','code'
|
||||
$local:editor = $null
|
||||
foreach( $local:testEditor in $editors ) {
|
||||
if( $(try{Get-Command -Type Application $testEditor -ErrorAction SilentlyContinue}catch{}) ) {
|
||||
$editor = $testEditor
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if( $editor -match 'vim?$' ) {
|
||||
$editor += ' -p'
|
||||
}
|
||||
|
||||
if( $editor -match 'code(\.exe)?$' ) {
|
||||
if( -not (Get-Process -Name 'code' -ErrorAction SilentlyContinue) ) {
|
||||
Invoke-ExpressionEx -sudo:$sudo $editor
|
||||
}
|
||||
}
|
||||
|
||||
$local:arguments = $Path -join "' '"
|
||||
if( $Path ) { $arguments = "'$arguments'" }
|
||||
|
||||
if( $PSCmdlet.ShouldProcess( "Edit ($editor): $arguments" ) ) {
|
||||
Invoke-ExpressionEx -sudo:$sudo $editor "$arguments"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue