-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathGet-Tailor.ps1
47 lines (44 loc) · 1.05 KB
/
Get-Tailor.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function Get-Tailor {
param
(
[Parameter(Mandatory=$true)]
[string[]]$files,
[long]$tail = 1
)
function highlight
{
Begin
{
$settings = Get-Content "Tailor.json" | ConvertFrom-Json
}
Process
{
$matched = $false
foreach ($setting in $settings.rules) {
if ($_ -match $setting.match) {
$matched = $true
Write-Host $_ -ForegroundColor $setting.color
break
}
}
if (-not $matched -and $settings.default.enabled)
{
Write-Host $_ -ForegroundColor $settings.default.color
}
}
}
workflow tailor
{
param
(
[string[]]$files,
[long]$tail
)
foreach -parallel ($file in $files)
{
Get-Content -Tail $tail $file -wait
}
}
$ProgressPreference='SilentlyContinue'
tailor $files $tail | highlight
}