From 68b21da5b9b19a4ac1f9a2c1580b4ecea636d81b Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Fri, 13 Dec 2024 20:35:12 +0000 Subject: [PATCH] Replace default cd alias with cd function Define cd to work more like Unix/Linux: * No path argument changes to the users home directory * Passing "-" for the path argument changes to the previous directory --- alias.ps1 | 1 + profile.ps1 | 3 ++- utils.ps1 | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/alias.ps1 b/alias.ps1 index 7c3d5e6..de68882 100644 --- a/alias.ps1 +++ b/alias.ps1 @@ -1,4 +1,5 @@ # Remove these aliases to PowerShell builtins which clobber the actaul exes. Remove-Item alias:curl Remove-Item alias:wget +Remove-Item alias:cd # TODO: Remove default abbriviation aliases diff --git a/profile.ps1 b/profile.ps1 index 1ef05f3..6d9604a 100644 --- a/profile.ps1 +++ b/profile.ps1 @@ -11,4 +11,5 @@ $OutputEncoding = New-Object -typename System.Text.UTF8Encoding . $PSScriptRoot\alias.ps1 . $PSScriptRoot\utils.ps1 . $PSScriptRoot\layout.ps1 -# TODO: $PSScriptRoot\build.ps1 +# TODO: . $PSScriptRoot\build.ps1 +# TODO: . $PSScriptRoot\autoenv.ps1 diff --git a/utils.ps1 b/utils.ps1 index b850a50..c4758d0 100644 --- a/utils.ps1 +++ b/utils.ps1 @@ -1,2 +1,16 @@ -# TODO: Define cd to work with zero args for home and - for last directory +# Define cd to work more like Unix/Linux: +# * No path argument changes to the users home directory +# * Passing "-" for the path argument changes to the previous directory +$Global:cdPreviousPath = Get-Location +function cd { + Param ([string]$Path) + if ($Path -eq "") { + $Path = "~" + } elseif ($Path -eq "-") { + $Path = $cdPreviousPath + } + $Global:cdPreviousPath = Get-Location + Set-Location -Path $Path +} + # TODO: Define rm to work with -rf and multiple entries