From d189f401fffa7d18bd81fefea3288d938bfbda7f Mon Sep 17 00:00:00 2001 From: aaronsb Date: Wed, 4 Oct 2017 12:51:04 -0700 Subject: [PATCH 01/17] Update README.md --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5bd0b20..771a38b 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,15 @@ $global:PSColor = @{ Default = @{ Color = 'White' } Directory = @{ Color = 'Cyan'} Hidden = @{ Color = 'DarkGray'; Pattern = '^\.' } - Code = @{ Color = 'Magenta'; Pattern = '\.(java|c|cpp|cs|js|css|html)$' } - Executable = @{ Color = 'Red'; Pattern = '\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg)$' } + Code = @{ Color = 'Magenta'; Pattern = '\.(java|c|cpp|cs|js|css|html|py)$' } + Executable = @{ Color = 'Red'; Pattern = '\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg|msi)$' } + Machine = @{ Color = 'Blue'; Pattern = '\.(bin|dll|iso|img|ovf|ova)$' } Text = @{ Color = 'Yellow'; Pattern = '\.(txt|cfg|conf|ini|csv|log|config|xml|yml|md|markdown)$' } - Compressed = @{ Color = 'Green'; Pattern = '\.(zip|tar|gz|rar|jar|war)$' } + Image = @{ Color = 'DarkYellow'; Pattern = '\.(jpg|gif|bmp|jpeg|tif|tiff|png|psd)$' } + Audio = @{ Color = 'DarkBlue'; Pattern = '\.(mp3|aif|wav|wma|aif|iff|m4a)$' } + Video = @{ Color = 'DarkCyan'; Pattern = '\.(avi|mov|mpg|mp4|wmv|m4v)$' } + Office = @{ Color = 'DarkRed'; Pattern = '\.(xls|xlsx|xlsm|pdf|docx|doc|ppt|pptx|sdc|sdd|ott|odf|pub|rtf)$' } + Compressed = @{ Color = 'Green'; Pattern = '\.(7z|zip|tar|gz|rar|jar|war)$' } } Service = @{ Default = @{ Color = 'White' } @@ -40,7 +45,7 @@ $global:PSColor = @{ LineNumber = @{ Color = 'Yellow' } Line = @{ Color = 'White' } } - NoMatch = @{ + NoMatch = @{ Default = @{ Color = 'White' } Path = @{ Color = 'Cyan'} LineNumber = @{ Color = 'Yellow' } From 3aa05324965ea877914ca6a8e20f7ff18979c3b6 Mon Sep 17 00:00:00 2001 From: aaronsb Date: Wed, 4 Oct 2017 12:51:30 -0700 Subject: [PATCH 02/17] Update FileInfo.ps1 --- src/FileInfo.ps1 | 54 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/src/FileInfo.ps1 b/src/FileInfo.ps1 index 73053c0..bd3abbe 100644 --- a/src/FileInfo.ps1 +++ b/src/FileInfo.ps1 @@ -29,44 +29,46 @@ function Write-Color-LS { param ([string]$color = "white", $file) - $length = if ($file -is [System.IO.DirectoryInfo]) { $null } else { $file.length } - Write-host ("{0,-7} {1,25} {2,10} {3}" -f $file.mode, ([String]::Format("{0,10} {1,8}", $file.LastWriteTime.ToString("d"), $file.LastWriteTime.ToString("t"))), (Write-FileLength $length), $file.name) -foregroundcolor $color + Write-host ("{0,-7} {1,25} {2,10} {3}" -f $file.mode, ([String]::Format("{0,10} {1,8}", $file.LastWriteTime.ToString("d"), $file.LastWriteTime.ToString("t"))), (Write-FileLength $file.length), $file.name) -foregroundcolor $color } function FileInfo { param ( [Parameter(Mandatory=$True,Position=1)] - [System.IO.FileSystemInfo] $file + $file ) $regex_opts = ([System.Text.RegularExpressions.RegexOptions]::IgnoreCase) - + $hidden = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Hidden.Pattern, $regex_opts) $code = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Code.Pattern, $regex_opts) $executable = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Executable.Pattern, $regex_opts) + $machine = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Machine.Pattern, $regex_opts) $text_files = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Text.Pattern, $regex_opts) + $image_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Image.Pattern, $regex_opts) + $audio_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Audio.Pattern, $regex_opts) + $video_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Video.Pattern, $regex_opts) + $office_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Office.Pattern, $regex_opts) $compressed = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Compressed.Pattern, $regex_opts) - if ($file -is [System.IO.DirectoryInfo]) - { - $currentdir = $file.Parent.FullName - } else - { - $currentdir = $file.DirectoryName - } - if($script:directory -ne $currentdir) - { - $script:directory = $currentdir + if($script:showHeader) + { Write-Host - Write-Host " Directory: " -noNewLine - Write-Host " $currentdir`n" -foregroundcolor "Green" + Write-Host " Directory: " -noNewLine + Write-Host " $(pwd)`n" -foregroundcolor "Green" Write-Host "Mode LastWriteTime Length Name" Write-Host "---- ------------- ------ ----" + $script:showHeader=$false } if ($hidden.IsMatch($file.Name)) @@ -84,10 +86,30 @@ function FileInfo { elseif ($executable.IsMatch($file.Name)) { Write-Color-LS $global:PSColor.File.Executable.Color $file + } + elseif ($machine.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Machine.Color $file } elseif ($text_files.IsMatch($file.Name)) { Write-Color-LS $global:PSColor.File.Text.Color $file + } + elseif ($image_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Image.Color $file + } + elseif ($audio_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Audio.Color $file + } + elseif ($video_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Video.Color $file + } + elseif ($office_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Office.Color $file } elseif ($compressed.IsMatch($file.Name)) { From 0e7bc2b0631a830c16802fdac02be4d8f33deaa3 Mon Sep 17 00:00:00 2001 From: aaronsb Date: Wed, 4 Oct 2017 12:52:09 -0700 Subject: [PATCH 03/17] Update FileInfo.ps1 --- release/FileInfo.ps1 | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/release/FileInfo.ps1 b/release/FileInfo.ps1 index b3b41ab..bd3abbe 100644 --- a/release/FileInfo.ps1 +++ b/release/FileInfo.ps1 @@ -46,8 +46,18 @@ function FileInfo { $global:PSColor.File.Code.Pattern, $regex_opts) $executable = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Executable.Pattern, $regex_opts) + $machine = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Machine.Pattern, $regex_opts) $text_files = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Text.Pattern, $regex_opts) + $image_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Image.Pattern, $regex_opts) + $audio_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Audio.Pattern, $regex_opts) + $video_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Video.Pattern, $regex_opts) + $office_files = New-Object System.Text.RegularExpressions.Regex( + $global:PSColor.File.Office.Pattern, $regex_opts) $compressed = New-Object System.Text.RegularExpressions.Regex( $global:PSColor.File.Compressed.Pattern, $regex_opts) @@ -76,10 +86,30 @@ function FileInfo { elseif ($executable.IsMatch($file.Name)) { Write-Color-LS $global:PSColor.File.Executable.Color $file + } + elseif ($machine.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Machine.Color $file } elseif ($text_files.IsMatch($file.Name)) { Write-Color-LS $global:PSColor.File.Text.Color $file + } + elseif ($image_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Image.Color $file + } + elseif ($audio_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Audio.Color $file + } + elseif ($video_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Video.Color $file + } + elseif ($office_files.IsMatch($file.Name)) + { + Write-Color-LS $global:PSColor.File.Office.Color $file } elseif ($compressed.IsMatch($file.Name)) { @@ -89,4 +119,4 @@ function FileInfo { { Write-Color-LS $global:PSColor.File.Default.Color $file } -} \ No newline at end of file +} From be6575d7623ee2b5fb73674111d9809bc000fec3 Mon Sep 17 00:00:00 2001 From: Aaron Bockelie Date: Tue, 27 Aug 2019 16:19:25 -0700 Subject: [PATCH 04/17] No need to distribute zip of branch. --- release/PSColor.zip | Bin 5218 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 release/PSColor.zip diff --git a/release/PSColor.zip b/release/PSColor.zip deleted file mode 100644 index 7c77b48b69e1051d2b44e798fca2c7b85816e6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5218 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 Je Date: Tue, 26 May 2020 17:11:26 -0700 Subject: [PATCH 05/17] Making module work by default from repo --- release/FileInfo.ps1 => FileInfo.ps1 | 0 release/MatchInfo.ps1 => MatchInfo.ps1 | 0 release/PSColor.psm1 => PSColor.psm1 | 0 release/PSColorHelper.ps1 => PSColorHelper.ps1 | 0 release/ProcessInfo.ps1 => ProcessInfo.ps1 | 0 release/PsColor.psd1 => PsColor.psd1 | Bin .../ServiceController.ps1 => ServiceController.ps1 | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename release/FileInfo.ps1 => FileInfo.ps1 (100%) rename release/MatchInfo.ps1 => MatchInfo.ps1 (100%) rename release/PSColor.psm1 => PSColor.psm1 (100%) rename release/PSColorHelper.ps1 => PSColorHelper.ps1 (100%) rename release/ProcessInfo.ps1 => ProcessInfo.ps1 (100%) rename release/PsColor.psd1 => PsColor.psd1 (100%) rename release/ServiceController.ps1 => ServiceController.ps1 (100%) diff --git a/release/FileInfo.ps1 b/FileInfo.ps1 similarity index 100% rename from release/FileInfo.ps1 rename to FileInfo.ps1 diff --git a/release/MatchInfo.ps1 b/MatchInfo.ps1 similarity index 100% rename from release/MatchInfo.ps1 rename to MatchInfo.ps1 diff --git a/release/PSColor.psm1 b/PSColor.psm1 similarity index 100% rename from release/PSColor.psm1 rename to PSColor.psm1 diff --git a/release/PSColorHelper.ps1 b/PSColorHelper.ps1 similarity index 100% rename from release/PSColorHelper.ps1 rename to PSColorHelper.ps1 diff --git a/release/ProcessInfo.ps1 b/ProcessInfo.ps1 similarity index 100% rename from release/ProcessInfo.ps1 rename to ProcessInfo.ps1 diff --git a/release/PsColor.psd1 b/PsColor.psd1 similarity index 100% rename from release/PsColor.psd1 rename to PsColor.psd1 diff --git a/release/ServiceController.ps1 b/ServiceController.ps1 similarity index 100% rename from release/ServiceController.ps1 rename to ServiceController.ps1 From aafd3247b1127b29578a0855649d383c233bbde9 Mon Sep 17 00:00:00 2001 From: aaronsb Date: Tue, 26 May 2020 18:26:52 -0700 Subject: [PATCH 06/17] Fixing stuff --- PSColor.psm1 | 65 ++++++++++----- PsColor.psd1 | Bin 5306 -> 2637 bytes release/FileInfo.ps1 | 122 ++++++++++++++++++++++++++++ release/MatchInfo.ps1 | 12 +++ release/PSColor.psm1 | 134 +++++++++++++++++++++++++++++++ release/PSColorHelper.ps1 | 12 +++ release/ProcessInfo.ps1 | 31 +++++++ release/PsColor.psd1 | Bin 0 -> 5276 bytes release/ServiceController.ps1 | 34 ++++++++ src/MatchInfo.ps1 | 24 +----- src/PSColor.psm1 | 147 +++++++++++++++++++++++++--------- src/PsColor.psd1 | Bin 5306 -> 2637 bytes 12 files changed, 498 insertions(+), 83 deletions(-) create mode 100644 release/FileInfo.ps1 create mode 100644 release/MatchInfo.ps1 create mode 100644 release/PSColor.psm1 create mode 100644 release/PSColorHelper.ps1 create mode 100644 release/ProcessInfo.ps1 create mode 100644 release/PsColor.psd1 create mode 100644 release/ServiceController.ps1 diff --git a/PSColor.psm1 b/PSColor.psm1 index 18b6ddd..62812a7 100644 --- a/PSColor.psm1 +++ b/PSColor.psm1 @@ -7,28 +7,53 @@ Add-Type -assemblyname System.ServiceProcess . "$PSScriptRoot\MatchInfo.ps1" . "$PSScriptRoot\ProcessInfo.ps1" -$global:PSColor = @{ - File = @{ - Default = @{ Color = 'White' } - Directory = @{ Color = 'Cyan'} - Hidden = @{ Color = 'DarkGray'; Pattern = '^\.' } - Code = @{ Color = 'Magenta'; Pattern = '\.(java|c|cpp|cs|js|css|html)$' } - Executable = @{ Color = 'Red'; Pattern = '\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg)$' } - Text = @{ Color = 'Yellow'; Pattern = '\.(txt|cfg|conf|ini|csv|log|config|xml|yml|md|markdown)$' } - Compressed = @{ Color = 'Green'; Pattern = '\.(zip|tar|gz|rar|jar|war)$' } - } - Service = @{ - Default = @{ Color = 'White' } - Running = @{ Color = 'DarkGreen' } - Stopped = @{ Color = 'DarkRed' } - } - Match = @{ - Default = @{ Color = 'White' } - Path = @{ Color = 'Cyan'} - LineNumber = @{ Color = 'Yellow' } - Line = @{ Color = 'White' } + +#generate path to json color defition file +$PSColorTablePath = Join-Path -Path (Get-ChildItem $profile.CurrentUserCurrentHost).DirectoryName -Childpath PSColorTable.json + +#if the file doesn't exist, generate a template config objcet +if (!(Test-Path $PSColorTablePath)) { + $global:PSColor = @{ + File = @{ + Default = @{ Color = 'White' } + Directory = @{ Color = 'Cyan'} + Hidden = @{ Color = 'DarkGray'; Pattern = '^\.' } + Code = @{ Color = 'Magenta'; Pattern = '\.(java|c|cpp|cs|js|css|html|py)$' } + Executable = @{ Color = 'Red'; Pattern = '\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg|msi)$' } + Machine = @{ Color = 'Blue'; Pattern = '\.(bin|dll|iso|img|ovf|ova)$' } + Text = @{ Color = 'Yellow'; Pattern = '\.(txt|cfg|conf|ini|csv|log|config|xml|yml|md|markdown)$' } + Image = @{ Color = 'DarkYellow'; Pattern = '\.(jpg|gif|bmp|jpeg|tif|tiff|png|psd|ico)$' } + Audio = @{ Color = 'DarkBlue'; Pattern = '\.(mp3|aif|wav|wma|aif|iff|m4a)$' } + Video = @{ Color = 'DarkCyan'; Pattern = '\.(avi|mov|mpg|mp4|wmv|m4v)$' } + Office = @{ Color = 'DarkRed'; Pattern = '\.(xls|xlsx|xlsm|pdf|docx|doc|ppt|pptx|sdc|sdd|ott|odf|pub|rtf|vsd|vsdx)$' } + Compressed = @{ Color = 'Green'; Pattern = '\.(7z|zip|tar|gz|rar|jar|war)$' } + } + Service = @{ + Default = @{ Color = 'White' } + Running = @{ Color = 'DarkGreen' } + Stopped = @{ Color = 'DarkRed' } + } + Match = @{ + Default = @{ Color = 'White' } + Path = @{ Color = 'Cyan'} + LineNumber = @{ Color = 'Yellow' } + Line = @{ Color = 'White' } + } + NoMatch = @{ + Default = @{ Color = 'White' } + Path = @{ Color = 'Cyan'} + LineNumber = @{ Color = 'Yellow' } + Line = @{ Color = 'White' } + } } + Write-Warning ("PSColorTable definition file not found at " + $PSColorTablePath + "`r`nCreating default configuration file.`r`nThis only happens if the file doesn't previously exist.") + $global:PSColor | ConvertTo-Json | Out-File $PSColorTablePath } +else { + $global:PSColor = @{} + (Get-Content $PSColorTablePath | ConvertFrom-Json).psobject.properties | ForEach-Object { $global:PSColor[$_.Name] = $_.Value } +} + $script:showHeader=$true diff --git a/PsColor.psd1 b/PsColor.psd1 index a850b336c61831302edfb53dd3bbc98ec02f689d..9d865524d385e2f11c4644206762b81bee1943d7 100644 GIT binary patch literal 2637 zcmbtW+iv4F5Pdh`e;B|INs6@_=eETH1=h7Uy8#l{$YtACN*Y;2c+rxS9i!;KcSuo+ zoVad+A`eEynKQRDhaB{K1Gv#yB@iT2JV)yw*9K($?O&2QmsxyrTC8u#RhnW%JF>DMe6syK9DW>=jSKm{5(sCd3OGBc$Qq8 z3|WS!!!%(ZlQTTcS&k8WQn`Z4-p;Ati=PSWJ2PBYHkwbhEScH>xvWrSJ3I#vZRSj( zPv${AD!o=MK)Eq|SvatcS}LiGFzLFfp(Fj?R5wQCf0!Q8{7#M`W&(>U5j>?Z${C(i zj#}HKH$xi+>bo6ELdYwXdJ`tN+dyeFktGmkyLDYp3i=zf6e9JcgM!i(K4q?!v5Fh6 zxU3}gpq^}u^#^fKuPrR}8qHmSLIA2IR|p1wRNU-{JLnj97!c!x9{xLcp=nRv1pSRH zn}NK$hWCYeUB!-W-SE_Ct8)jV`ImdRG(?uQHjn$NnQ1pi*P6a5jw_I+C?)YhFtx1M zl4eoS>JT>%r`NYf`vTJW>mUoGQzS(&z)V_jhpDR!fz7qT5Af$N7aw3Evx~F6$SugE zi$T0=W)l{{5=9w_Q$v{Uj-?g-e0Wp~)x=tqv|RWivd|3K=z!rb2~< zvQj1lngjce!bn9MF}L?Rwzpf_{iY->c#ixe1qIi>ud%vyfs{e$@s6%}|J}%!+DMwx z|G=&hcB3~_Y9~t95h%JJX&y4NBnm|RFW3@Op7X#Hc)pu{u94d2_=e2`P7|Utsmmyu z!~+fZ zv&;RO)7nvMiHvQhOO`&8gk;cp2*f+9dB6m>PAj`GHAnV>ToOfJLM#kl(On4{bIiA+ zq!)?*^%C&@p+~ft2YXhWZz#$um1}soy?XT;7(jFEPoJG;n6pYa5(doqQ@F>y*fN#T z?gmCst6uVE1i!D)7`lZ+0ogW2W&QG9g*6=3%!J`0;D;TLA?c0b!_)_DMt^%5`v=yo BVi*7b literal 5306 zcmc(jTW?xN6ovP5rTzyb9^zCDtrNSgDpd-Nv2Cf2n}8(B|pV{6;F4Xv-Yna$PGSN}Bh zl*iq(SL%PFzESAEx0Dy9KGXbj{il*Q*S#wV9s6KE>wcuRcUptCQ{B(?)RCOF?mmB; zl!?Y8<)M9V`*vUtbbT1Ek4m$V@Yp_vmMHDa3gH>rMbK-U>Fqjp0-Cl)eb5T|h`##V zMr~<6)9gYmNxOyK=Ju!NaUE*Jx-}aCPfK$r8kJlA7mdfNXCz)iZlzF4x!Z+o8O=uX%@(Qpmr3-4E?YJsn8XAA-+`n4UdS zTcNhLdOPZ+rLQ+)I7i+TIxx7mx7i6y`Dn+rEq3#@$c?f5M?PTG(mkOfQ>H>gJWa(6utj49<*z6(Fxr8c|xVmF-_MLuD9d=m*Lpfuk2B3ey;E__btCFX z^XHP=({)|y?db!15%=WcSU=ArstU5=QujgVp9YSAA)H6|#IUE<3M_WL==1rzX!0u9 zyATeqAgHUTHj2O+)JbsHrCQKrPgX;Vo_(vgKkO&%dOS6SysPJf8(>~X(%gunI&TtJ z!bn)3eTABb%77>85vl-oL1HM@fiR!f4AEzUz@F^jk;kYHiOuuiCEurDaCjZ7`TVkM zXW1|DTT7VAtXQsu&;wl`%kuZLdaD`y)e{!#)S+Z-*O|S*YZG|)E^t>Psz#sJy|Io( zgFR(D73O}3q~t?l()SRmI(*1AdaDS2q86TNS3?dv&ux3mE7iKBm+{ZUP802a#74}c zONc;gLP@RG9Py!MZGvKF#Df2Y<6tMLv<_u40(I z^(F{%IlHd@R^Eh>+kq7$Cz455x52usT~TnJ00XCoo7f2)jb{_kuh!>Ka#$$Fy2?RHptMO_@iokK|ao5^HIdY80^ZQ2T+OGi!=a zp4!r7E-Se$sDI*n+*isryQ@skv2mJrWS(F7+2FZ!9m#Vi;w!#_)%1;`rMKwo%^6+S znAO>FZq-VhH2Gq|S2$vcih-7)I3S(RV`WQ4+YR