Created
January 13, 2020 16:39
-
-
Save SAReyes/8657c9cfa1e2b87446993b5566ff3422 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Author: vhanla | |
#Force coloring of git and npm commands | |
$env:TERM = 'cygwin' | |
$env:TERM = 'FRSX' | |
$global:foregroundColor = 'white' | |
$time = Get-Date | |
$psVersion= $host.Version.Major | |
$curUser= (Get-ChildItem Env:\USERNAME).Value | |
$curComp= (Get-ChildItem Env:\COMPUTERNAME).Value | |
# Change color of command line parameters | |
Set-PSReadLineOption -Colors @{Parameter = "Magenta"; Operator = "Magenta"; Type="Magenta"} | |
# Color directory listings | |
# You must install the PSColor module (https://github.com/Davlind/PSColor) first: | |
# Install-Module PSColor | |
Import-Module PSColor | |
clear | |
Write-Host "- PowerShell V$psVersion -" | |
Write-Host | |
# screenfetch | |
# Write-Host "Hello, $curUser! " -foregroundColor $foregroundColor -NoNewLine; Write-Host "$([char]9829) " -foregroundColor Red | |
# Write-Host "Today is: $($time.ToLongDateString())" | |
# Write-Host "Welcome to PowerShell version: $psVersion" -foregroundColor Green | |
# Write-Host "I am: $curComp" -foregroundColor Green | |
# Write-Host "¡Let's program!" `n | |
# Create home alias to folder in which shell was started | |
$_home = PWD | |
function goHome {Set-Location $_home} | |
Set-Alias home goHome | |
function goUserHome {Set-Location ~} | |
Set-Alias ~ goUserHome | |
function relativePathToHome{ | |
$currentPath = (Get-Location).Path | |
$currentDrive = (Get-Location).Drive.Root | |
$homeDrive = ($_home).Drive.Root | |
if ($currentPath -eq $currentDrive -or $currentDrive -ne $homeDrive) { | |
$trimmedRelativePath = $currentPath | |
} | |
else { | |
Set-Location $_home | |
$relativePath = Resolve-Path -relative $currentPath | |
$trimmedRelativePath = $relativePath -replace '^..\\' | |
} | |
Set-Location $currentPath | |
# Write-Host $relativePath | |
# Write-Host $trimmedRelativePath | |
return $trimmedRelativePath | |
} | |
function Prompt { | |
# Prompt Colors | |
# Black DarkBlue DarkGreen DarkCyan DarkRed DarkMagenta DarkYellow | |
# Gray DarkGray Blue Green Cyan Red Magenta Yellow White | |
$prompt_time_text = "Black" | |
$prompt_time_background = "Gray" | |
$prompt_text = "White" | |
$prompt_background = "Blue" | |
$prompt_git_background = "Yellow" | |
$prompt_git_text = "Black" | |
# Grab Git Branch | |
$git_string = ""; | |
git branch | foreach { | |
if ($_ -match "^\* (.*)"){ | |
$git_string += $matches[1] | |
} | |
} | |
# Grab Git Status | |
$git_status = ""; | |
git status --porcelain | foreach { | |
$git_status = $_ #just replace other wise it will be empty | |
} | |
if (!$git_string) { | |
$prompt_text = "White" | |
$prompt_background = "Blue" | |
} | |
if ($git_status){ | |
$prompt_git_background = "DarkGreen" | |
} | |
$curtime = Get-Date | |
# $drive = (PWD).Drive.Name | |
$path = Split-Path (PWD) -Leaf | |
$relativePath = relativePathToHome | |
# Write-Host -NoNewLine (" PS$psVersion " -f (Get-Date)) -foregroundColor $prompt_time_text -backgroundColor $prompt_time_background | |
Write-Host -NoNewLine (" {0:HH}:{0:mm}:{0:ss} " -f (Get-Date)) -foregroundColor $prompt_time_text -backgroundColor $prompt_time_background | |
Write-Host -NoNewLine "$([char]57520)" -foregroundColor $prompt_time_background -backgroundColor $prompt_background | |
# Write-Host " $path " -foregroundColor $prompt_text -backgroundColor $prompt_background -NoNewLine | |
if ($git_string){ | |
Write-Host " $relativePath " -foregroundColor $prompt_text -backgroundColor $prompt_background -NoNewLine | |
Write-Host "$([char]57520)" -foregroundColor $prompt_background -NoNewLine -backgroundColor $prompt_git_background | |
Write-Host " $([char]57504) " -foregroundColor $prompt_git_text -backgroundColor $prompt_git_background -NoNewLine | |
Write-Host "$git_string " -foregroundColor $prompt_git_text -backgroundColor $prompt_git_background | |
Write-Host -NoNewLine "$([char]57520)$([char]57521)$([char]57521)$([char]57521)" -foregroundColor $prompt_background | |
} | |
else{ | |
Write-Host " $relativePath " -foregroundColor $prompt_text -backgroundColor $prompt_background | |
Write-Host -NoNewLine "$([char]57520)$([char]57521)$([char]57521)$([char]57521)" -foregroundColor $prompt_background | |
} | |
# Write-Host -NoNewLine "[" -foregroundColor Yellow | |
# Write-Host -NoNewLine "]$" -foregroundColor Yellow | |
# Write-Host -NoNewLine "$" -foregroundColor Yellow | |
# Write-Host -NoNewLine "$([char]955)" -foregroundColor Green | |
# $host.UI.RawUI.WindowTitle = "PS >> User: $curUser >> Current DIR: $((Get-Location).Path)" | |
Return " " | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment