]> us-delaporte.pagekite.me Git - dotfiles.git/blob - files/Microsoft.PowerShell_profile.ps1
Pry my rm command from my cold dead hands
[dotfiles.git] / files / Microsoft.PowerShell_profile.ps1
1 #WebDriverException: Message: unknown error: cannot determine loading status .EXAMPLE
2 # . C:\src\dotfiles\Microsoft.PowerShell_profile.ps1
3
4 # Courtesty of MKletz
5 # Get-ChildItem -Path 'C:\Repos' -Filter "*.psd1" -Recurse | ForEach-Object -Process {
6 # $Path = Split-Path -Path $_.Directory -Parent
7 # $env:PSModulePath = $env:PSModulePath + ";$($Path)"
8 #}
9 # $env:PSModulePath = $env:PSModulePath.Replace("\\ad.uillinois.edu\techsvc\home\$($ENV:USERNAME)\Documents\PowerShell\Modules;",'')
10
11 $env:src = "~\src"
12 if($IsWindows){
13 $env:src = "c:\src"
14 }
15
16 if($IsWindows){
17 # Some Paths that are annoying to find/restore if the installer fails
18 $ENV:PATH+=";$env:src\bin" # anything else I need
19 $ENV:PATH+=";C:\Program Files\Microsoft VS Code\bin" # One Editor to rule them all
20 $ENV:PATH+=";C:\Program Files\Git\cmd" # Version control is nice.
21 $ENV:PATH+=";C:\ProgramData\chocolatey\bin" # Package management is nice.
22 $ENV:PATH+=";C:\bin\x16emu" # Package management is nice.
23 $ENV:PATH+=";C:\Program Files (x86)\GnuWin32\bin" # GNU Utils - i.e. rm
24 $ENV:PATH+=";C:\PENGUIN" # Flag to ensure my profile kicked in.
25 $ENV:PATH+=";$env:src\x16-demo\tools" # x16 python tools
26 $ENV:PATH+=";$env:src\flutter\bin" # Flutter for Dart
27 }
28 else {
29 $ENV:PATH+=";$env:src/bin" # anything else I need
30 $ENV:PATH+=":$HOME/x16/x16-emulator" # x16 Emulator
31 $ENV:PATH+=":$HOME/src/x16-demo/tools" # x16 python tools
32 }
33
34 # Command line tools
35 $ENV:PATH+=";$env:src\chart" # command line chart utility edthedev\chart
36 $ENV:PATH+=";$env:src\agenda" # command line chart utility edthedev\chart
37 $ENV:PATH+=";$env:src\todolist" # todo list utility edthedev\todolist
38 $env:todolist = "C:\Users\delaport\Journal\"
39 # New-Alias todo todolist
40
41 # alias renumber $HOME/src/x16-demo/
42
43 $env:Journal = "~\Journal" # allows cd $env:journal
44 # $env:minion = "$env:src\minion"
45
46 # Import some home grown PowerShell modules, if they are installed.
47 #
48 $modPaths = Get-Childitem -ErrorAction Ignore -Path "$env:src\dotfiles\psmodules"
49 # $modPaths += Get-Childitem -ErrorAction Ignore -Path "$env:minion\psmodule"
50
51 # https://github.com/uillinois-community/powershell-scripts
52 # $modPaths += Get-Childitem -ErrorAction Ignore -Path "$env:src\powershell-scripts\modules"
53
54 # Windows Only Modules
55 # if($IsWindows){
56 # $modPaths += Get-Childitem -ErrorAction Ignore -Path "$env:src\dotfiles\win_psmodules"
57 # }
58 # if($modPaths.length -eq 0){
59 # Write-Host "No modules found."
60 # }
61
62 # $enabledMods = 'dash.psm1','docker.psm1';
63 # $modPaths | ForEach-Object {
64 # $fileName = $_.FullName
65 # if($enabledModules -Contains $_.Name ){
66 # if($filename -Like "*.psm1") {
67 # Import-Module $fileName
68 # Write-Host ">> Loaded $fileName"
69 # }
70 # }
71 # }
72
73
74
75 # Linux-like up/down in shell
76 Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
77 Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
78 Set-PSReadlineOption -HistorySavePath $env:src\PSHistory.log
79
80 # Minion alias commands - 'today'
81 # . C:\src\minion\profiles\alias.ps1
82 # . $env:minion\profiles\alias.ps1
83 # Add Minion go executable to path.
84 # . $env:minion\profiles\path.ps1
85 # Add Minion to path
86 # Write-Host "+ Added minion command to path."
87 # if($IsWindows){
88 # $ENV:PATH+=";$env:minion\go" # Flag to ensure my profile kicked in.
89 # }
90
91 # Unix dies hard.
92 New-Alias which get-command
93 # New-Alias rm Remove-Item
94
95 # Delay loading PoshGit for speed.
96 function Enable-PoshGit {
97 Import-Module posh-git
98 }
99 New-Alias pg Enable-PoshGit
100 Write-Host "+ Type 'pg' to enable PoshGit"
101
102 function Invoke-X16Emu {
103 param(
104 [string]$File
105 )
106 x16emu.exe -bas $File -keymap en-us
107 }
108
109 New-Alias x16 Invoke-X16Emu
110
111 if((Get-Location).Path -eq $HOME){
112 cd $env:src
113 }
114
115 function Get-GitLog() {
116 git log --oneline
117 }
118
119 function Get-GitStatus() {
120 git status -b --short
121 }
122
123 # Tell my scripts which GitHub repositories to look in.
124 $env:GITHUB_USERNAME = 'edthedev'
125 $env:GITHUB_REPOS = @(
126 'techservicesillinois/SecOps-Tools',
127 'techservicesillinois/secdev-job-aids',
128 'techservicesillinois/awscli-login',
129 'techservicesillinois/farmit',
130 'uillinois-community/uillinois-community.github.io',
131 'techservicesillinois/SecOps-Powershell-CSOC',
132 'techservicesillinois/SecOps-Powershell-CISDSC',
133 'techservicesillinois/secops-splunk-null-router'
134 ) -join ' '
135 $ENV:TS_REPOS = $ENV:GITHUB_REPOS.split(' ') | Where { $_ -like 'techser*' }
136
137
138 # Nice for git
139 New-Alias ol Get-GitLog
140 New-Alias st Get-GitStatus
141
142 # Dashboard
143 New-Alias dash Show-MyDashboard # from dash.psm1
144
145 function Get-JournalAgenda() {
146 agenda.exe -path "$HOME/Journal/{YYYY}/{MM}-{DD}.md"
147 }
148 New-Alias today Get-JournalAgenda
149
150 function Invoke-FixWslVPN {
151 Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter for Windows x64"} | Set-NetIPInterface -InterfaceMetric 6000
152 }