Skip to content

Instantly share code, notes, and snippets.

@lebarsfa
Forked from Villenny/refreshenv.bashrc
Last active February 4, 2024 22:54
Show Gist options
  • Save lebarsfa/237841f9e5dad55ef192713b3b1b2f16 to your computer and use it in GitHub Desktop.
Save lebarsfa/237841f9e5dad55ef192713b3b1b2f16 to your computer and use it in GitHub Desktop.
Chocolatey refreshenv for GIT Bash.
function refreshenv
{
powershell -NonInteractive - <<EOF
\$filename="\$env:TEMP\refresh.env"
Write-Host("Updating environment session from chocolatey")
Set-ExecutionPolicy Bypass -Scope Process -Force
Import-Module "\$env:ChocolateyInstall\\helpers\\chocolateyProfile.psm1"
Update-SessionEnvironment
Write-Host("Scanning env")
# Round brackets in variable names cause problems with bash
\$results = Get-ChildItem env:* | %{
\$name = \$_.Name
if (!(\$name.Contains('(')) -And !(\$name.Contains('.'))) {
\$value = \$_.Value
if (\$name -eq 'PATH' -Or \$name -eq 'ORIGINAL_PATH') {
\$value = \$value -replace 'C:/','/c/'
\$value = \$value -replace 'C:\\\\','/c/'
\$value = \$value -replace 'D:/','/d/'
\$value = \$value -replace 'D:\\\\','/d/'
\$value = \$value -replace 'E:/','/e/'
\$value = \$value -replace 'E:\\\\','/e/'
\$value = \$value -replace 'F:/','/f/'
\$value = \$value -replace 'F:\\\\','/f/'
\$value = \$value -replace 'G:/','/g/'
\$value = \$value -replace 'G:\\\\','/g/'
\$value = \$value -replace 'H:/','/h/'
\$value = \$value -replace 'H:\\\\','/h/'
\$value = \$value -replace 'I:/','/i/'
\$value = \$value -replace 'I:\\\\','/i/'
\$value = \$value -replace 'J:/','/j/'
\$value = \$value -replace 'J:\\\\','/j/'
\$value = \$value -replace 'K:/','/k/'
\$value = \$value -replace 'K:\\\\','/k/'
\$value = \$value -replace 'L:/','/l/'
\$value = \$value -replace 'L:\\\\','/l/'
\$value = \$value -replace 'M:/','/m/'
\$value = \$value -replace 'M:\\\\','/m/'
\$value = \$value -replace 'N:/','/n/'
\$value = \$value -replace 'N:\\\\','/n/'
\$value = \$value -replace 'O:/','/o/'
\$value = \$value -replace 'O:\\\\','/o/'
\$value = \$value -replace 'P:/','/p/'
\$value = \$value -replace 'P:\\\\','/p/'
\$value = \$value -replace 'Q:/','/q/'
\$value = \$value -replace 'Q:\\\\','/q/'
\$value = \$value -replace 'R:/','/r/'
\$value = \$value -replace 'R:\\\\','/r/'
\$value = \$value -replace 'S:/','/s/'
\$value = \$value -replace 'S:\\\\','/s/'
\$value = \$value -replace 'T:/','/t/'
\$value = \$value -replace 'T:\\\\','/t/'
\$value = \$value -replace 'U:/','/u/'
\$value = \$value -replace 'U:\\\\','/u/'
\$value = \$value -replace 'V:/','/v/'
\$value = \$value -replace 'V:\\\\','/v/'
\$value = \$value -replace 'W:/','/w/'
\$value = \$value -replace 'W:\\\\','/w/'
\$value = \$value -replace 'X:/','/x/'
\$value = \$value -replace 'X:\\\\','/x/'
\$value = \$value -replace 'Y:/','/y/'
\$value = \$value -replace 'Y:\\\\','/y/'
\$value = \$value -replace 'Z:/','/z/'
\$value = \$value -replace 'Z:\\\\','/z/'
\$value = \$value -replace '\\\\','/'
\$value = \$value -replace ';',':'
}
if (\$name -eq 'PATH') {
\$hm = \$env:HOME
\$hm = \$hm -replace 'C:/','/c/'
\$hm = \$hm -replace 'C:\\\\','/c/'
\$hm = \$hm -replace 'D:/','/d/'
\$hm = \$hm -replace 'D:\\\\','/d/'
\$hm = \$hm -replace 'E:/','/e/'
\$hm = \$hm -replace 'E:\\\\','/e/'
\$hm = \$hm -replace 'F:/','/f/'
\$hm = \$hm -replace 'F:\\\\','/f/'
\$hm = \$hm -replace 'G:/','/g/'
\$hm = \$hm -replace 'G:\\\\','/g/'
\$hm = \$hm -replace 'H:/','/h/'
\$hm = \$hm -replace 'H:\\\\','/h/'
\$hm = \$hm -replace 'I:/','/i/'
\$hm = \$hm -replace 'I:\\\\','/i/'
\$hm = \$hm -replace 'J:/','/j/'
\$hm = \$hm -replace 'J:\\\\','/j/'
\$hm = \$hm -replace 'K:/','/k/'
\$hm = \$hm -replace 'K:\\\\','/k/'
\$hm = \$hm -replace 'L:/','/l/'
\$hm = \$hm -replace 'L:\\\\','/l/'
\$hm = \$hm -replace 'M:/','/m/'
\$hm = \$hm -replace 'M:\\\\','/m/'
\$hm = \$hm -replace 'N:/','/n/'
\$hm = \$hm -replace 'N:\\\\','/n/'
\$hm = \$hm -replace 'O:/','/o/'
\$hm = \$hm -replace 'O:\\\\','/o/'
\$hm = \$hm -replace 'P:/','/p/'
\$hm = \$hm -replace 'P:\\\\','/p/'
\$hm = \$hm -replace 'Q:/','/q/'
\$hm = \$hm -replace 'Q:\\\\','/q/'
\$hm = \$hm -replace 'R:/','/r/'
\$hm = \$hm -replace 'R:\\\\','/r/'
\$hm = \$hm -replace 'S:/','/s/'
\$hm = \$hm -replace 'S:\\\\','/s/'
\$hm = \$hm -replace 'T:/','/t/'
\$hm = \$hm -replace 'T:\\\\','/t/'
\$hm = \$hm -replace 'U:/','/u/'
\$hm = \$hm -replace 'U:\\\\','/u/'
\$hm = \$hm -replace 'V:/','/v/'
\$hm = \$hm -replace 'V:\\\\','/v/'
\$hm = \$hm -replace 'W:/','/w/'
\$hm = \$hm -replace 'W:\\\\','/w/'
\$hm = \$hm -replace 'X:/','/x/'
\$hm = \$hm -replace 'X:\\\\','/x/'
\$hm = \$hm -replace 'Y:/','/y/'
\$hm = \$hm -replace 'Y:\\\\','/y/'
\$hm = \$hm -replace 'Z:/','/z/'
\$hm = \$hm -replace 'Z:\\\\','/z/'
\$hm = \$hm -replace '\\\\','/'
\$hm = \$hm -replace ';',':'
\$value = "\$hm/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:\$value"
}
if ((\$name -ne 'HOME') -And \$name -ne 'SHELL' -And \$name -ne 'INFOPATH' -And \$name -ne 'MANPATH' -And \$name -ne 'PKG_CONFIG_PATH' -And \$name -ne 'PWD') {
Write-Output ("export \$name='\$value'")
}
}
}
# Write-Host("results = \$results")
\$results | Out-File -Encoding ascii \$filename
Write-Host("Wrote \$filename")
EOF
source "$TEMP/refresh.env"
if [[ -f ~/.bashrc ]]; then
source ~/.bashrc
fi
}
alias RefreshEnv=refreshenv
@lebarsfa
Copy link
Author

lebarsfa commented Aug 6, 2022

wget https://gist.github.com/lebarsfa/237841f9e5dad55ef192713b3b1b2f16/raw/04d77ced3457346c55f183ca12a10dbcb850e6d5/refreshenv.bashrc --no-check-certificate -nv
source ./refreshenv.bashrc
refreshenv

@lebarsfa
Copy link
Author

lebarsfa commented Aug 6, 2022

@lebarsfa
Copy link
Author

lebarsfa commented Feb 4, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment