Profile Restructure
Past due by about 1 year
0% complete
PowerShell Profile Restructuring
Goal: Restructure the profile directory structure to be simpler and more consolidated, utilizing custom, tailor made modules where necessary.
Primary Features
-
Maintain and Manage existing functionalities such as:
- Installed Modules
- Installed Scripts
- Downloaded/Updated Help
-
Keep up-to-date, comprehensive documentatio…
PowerShell Profile Restructuring
Goal: Restructure the profile directory structure to be simpler and more consolidated, utilizing custom, tailor made modules where necessary.
Primary Features
-
Maintain and Manage existing functionalities such as:
- Installed Modules
- Installed Scripts
- Downloaded/Updated Help
-
Keep up-to-date, comprehensive documentation about each aspect of the profile and its underlying components (i.e. options, integrations, completions, custom functions/aliases, etc.)
- Architectural Decision Records
-
Migrate all customized resources and source code into single, centralized profile
Source
directory.
Current Setup
Default Folders:
- Help: PowerShell Help files for installed modules and cmdlets
- Modules: Installed (CurrentUser Scoped) Modules
- Scripts: Installed (CurrentUser Scoped) Modules
Default Files:
Microsoft.PowerShell_Profile.ps1
:CurrentUser.CurrentHost
ProfileProfile.ps1
:CurrentUser.AllHosts
Profilepowershell.config.json
: PowerShell config/settings file- README.md
- .gitignore, .gitattributes, .editorconfig
- desktop.ini (for applying icon to folder)
Proposed Setup
- Add new
Source
folder:- Source Code that gets loaded by profiles on startup:
- Custom Functions/Aliases
- Completions/Completion Modules
- Other "profile" integrations (Chocolatey, Scoop, etc.)
- Customizations and Options:
- PSReadLine
- PSDefaultParameters
- oh-my-posh Prompt
- Secret Management:
- ...
- Tests/Assertions:
- ExecutionPolicy
- Trusted PSGallery, NuGet, and Personal GitHub Feeds (PackageManagement, PowerShellGet, PSResourceGet)
- Networking Assertions and TLS1.2 Protocol
- Tool Assertions (i.e. has GitHub CLI installed, etc.)
- Pester Tests for simple computer maintenance things (Disk space, up-to-date software, etc.
- Source Code that gets loaded by profiles on startup: