src/cdp.psm1
|
<#
.SYNOPSIS cdp - A fast project directory switcher for PowerShell. .DESCRIPTION cdp provides a fuzzy-search interface powered by fzf to quickly switch between projects. Compatible with Project Manager plugin. .NOTES Name: cdp Author: GoldenZqqq Version: 2.2.0 License: MIT #> $script:CdpProjectConfigCache = @{} $script:CdpFzfCommand = $null $script:CdpStateFingerprint = 'missing' $script:CdpStateWritable = $true $script:CdpStatusCache = @{} $domainRoot = Join-Path $PSScriptRoot 'PowerShell' $domainFiles = @( 'Core.ps1', 'Config.ps1', 'Paths.ps1', 'State.ps1', 'Frecency.ps1', 'Picker.ps1', 'Hooks.ps1', 'Parser.ps1', 'ProjectMetadata.ps1', 'Projects.ps1', 'Scan.ps1', 'Status.ps1', 'StatusOutput.ps1', 'StatusBatch.ps1', 'WorkspaceLifecycle.ps1', 'Workspace.ps1', 'ExecSelection.ps1', 'ExecOutput.ps1', 'Exec.ps1', 'Health.ps1', 'Commands.ps1', 'Completion.ps1' ) foreach ($domainFile in $domainFiles) { $domainPath = Join-Path $domainRoot $domainFile if (-not (Test-Path -LiteralPath $domainPath -PathType Leaf)) { throw "cdp module domain file not found: $domainPath" } . $domainPath } Remove-Variable -Name domainPath, domainFile, domainFiles, domainRoot -ErrorAction SilentlyContinue # Export module members Set-Alias -Name cdp -Value Invoke-Cdp Set-Alias -Name cdp-add -Value Add-Project Set-Alias -Name cdp-rm -Value Remove-Project Set-Alias -Name cdp-ls -Value Get-ProjectList Set-Alias -Name cdp-edit -Value Edit-ProjectConfig Set-Alias -Name cdp-config -Value Set-ProjectConfig Set-Alias -Name cdp-doctor -Value Test-ProjectHealth Set-Alias -Name cdp-scan -Value Import-GitProjects Set-Alias -Name cdp-recent -Value Get-CdpRecentProjects Set-Alias -Name cdp-pin -Value Set-ProjectPin Set-Alias -Name cdp-unpin -Value Clear-ProjectPin Set-Alias -Name cdp-clean -Value Repair-ProjectConfig Set-Alias -Name cdp-status -Value Show-CdpProjectStatus Set-Alias -Name cdp-init -Value Initialize-Cdp Set-Alias -Name cdp-alias -Value Add-ProjectAlias Set-Alias -Name cdp-unalias -Value Remove-ProjectAlias Set-Alias -Name cdp-tag -Value Add-ProjectTag Set-Alias -Name cdp-untag -Value Remove-ProjectTag Export-ModuleMember ` -Function Invoke-Cdp, Switch-Project, Get-ProjectList, Add-Project, Set-ProjectPin, Clear-ProjectPin, Repair-ProjectConfig, Initialize-Cdp, Add-ProjectAlias, Remove-ProjectAlias, Add-ProjectTag, Remove-ProjectTag, Import-GitProjects, Remove-Project, Edit-ProjectConfig, Set-ProjectConfig, Test-ProjectHealth, Show-CdpAbout, Get-CdpRecentProjects, Reset-CdpRecentProjects, Show-CdpProjectStatus, Invoke-CdpWorkspace ` -Alias cdp, cdp-add, cdp-rm, cdp-ls, cdp-edit, cdp-config, cdp-doctor, cdp-scan, cdp-recent, cdp-pin, cdp-unpin, cdp-clean, cdp-init, cdp-alias, cdp-unalias, cdp-tag, cdp-untag, cdp-status |