Update write-code.ps1

This commit is contained in:
Markus Fleschutz 2023-08-05 11:47:26 +02:00
parent d59d656366
commit 128f460e79

View File

@ -1,61 +1,63 @@
<#PSScriptInfo <#
.VERSION 1.0
.GUID 3bb10ee7-38c1-41b9-88ea-16899164fc19
.AUTHOR Markus Fleschutz
.COPYRIGHT CC0
#>
<#
.SYNOPSIS .SYNOPSIS
Writes code Writes code
.DESCRIPTION .DESCRIPTION
This PowerShell script generates and writes PowerShell code on the console (for fun). This PowerShell script generates and writes PowerShell code on the console (no AI, just for fun).
.PARAMETER color .PARAMETER color
Specifies the color to use ("green" by default) Specifies the text color to use ("green" by default)
.PARAMETER speed .PARAMETER speed
Specifies the speed in milliseconds per code line (500 by default) Specifies the speed in milliseconds per code line (500 by default)
.EXAMPLE .EXAMPLE
PS> ./write-code PS> ./write-code.ps1
try {
...
.LINK .LINK
https://github.com/fleschutz/PowerShell https://github.com/fleschutz/PowerShell
#> #>
param([string]$color = "green", [int]$speed = 500) # milliseconds param([string]$color = "green", [int]$speed = 500) # milliseconds
[string]$global:Tabs = ""
function GetRandomCodeLine { function GetRandomCodeLine {
$Generator = New-Object System.Random $Generator = New-Object System.Random
$Num = [int]$Generator.next(0, 25) $Num = [int]$Generator.next(0, 31)
switch($Num) { switch($Num) {
0 { return " `$count = 0" } 0 { return $Tabs + "`$count = 0" }
1 { return " `$count++" } 1 { return $Tabs + "`$count++" }
2 { return " exit 0 # success" } 2 { return $Tabs + "exit 0 # success" }
3 { return " `$Files = Get-ChildItem C:" } 3 { return $Tabs + "`$Files = Get-ChildItem C:" }
4 { return " Start-Sleep -seconds 1" } 4 { return $Tabs + "Start-Sleep -seconds 1" }
5 { return " `$Generator = New-Object System-Random" } 5 { return $Tabs + "`$Generator = New-Object System-Random" }
6 { return "} else {" } 6 { $global:Tabs = " "; return "} else {" }
7 { return "} catch {" } 7 { $global:Tabs = " "; return "} catch {" }
8 { return "} elseif (`$count -eq 0) {" } 8 { $global:Tabs = " "; return "} elseif (`$count -eq 0) {" }
9 { return " Write-Host `"Hello World`" " } 9 { return $Tabs + "Write-Host `"Hello World`" " }
10 { return " while (`$true) {" } 10 { $global:Tabs = " "; return "while (`$true) {" }
11 { return "# next part:" } 11 { return $Tabs + "# next part:" }
12 { return " exit 1 # failed" } 12 { return $Tabs + "exit 1 # failed" }
13 { return " return 1" } 13 { return $Tabs + "return 1" }
14 { return " return 0" } 14 { return $Tabs + "return 0" }
15 { return " Write-Progress `"Working...`" " } 15 { return $Tabs + "Write-Progress `"Working...`" " }
16 { return " [bool]`$KeepAlive = `$true" } 16 { return $Tabs + "[bool]`$KeepAlive = `$true" }
17 { return "# Copyright © 2022 write-code.ps1. All Rights Reserved." } 17 { return $Tabs + "# Copyright © 2023 write-code.ps1. All Rights Reserved." }
18 { return " for ([int]`$i = 0; `$i -lt 100; `$i++) {" } 18 { $global:Tabs = " "; return "for ([int]`$i = 0; `$i -lt 42; `$i++) {" }
19 { return " `$StopWatch = [system.diagnostics.stopwatch]::startNew()" } 19 { return $Tabs + "`$StopWatch = [system.diagnostics.stopwatch]::startNew()" }
20 { return " [int]`$Elapsed = `$StopWatch.Elapsed.TotalSeconds" } 20 { return $Tabs + "[int]`$Elapsed = `$StopWatch.Elapsed.TotalSeconds" }
21 { return " if (`$count -eq 0) { `$count = Read-Host `"Enter number of iterations`" " } 21 { $global:Tabs = " "; return "if (`$count -eq 42) {" }
22 { return " } finally {" } 22 { $global:Tabs = " "; return "} finally {" }
23 { return " throw `"Can't open file`" " } 23 { return $Tabs + "throw `"Can't open file`" " }
24 { return " Start-Sleep -milliseconds 50" } 24 { return $Tabs + "Start-Sleep -milliseconds 42" }
25 { return $Tabs + "`$Choice = Read-Host `"Red or blue pill?`"" }
26 { return $Tabs + "[int]`$Answer = 42" }
27 { $global:Tabs = ""; return "}" }
28 { $global:Tabs = " "; return "try {" }
29 { $global:Tabs = " "; return "foreach(`$Row in `$Table) {" }
30 { $global:Tabs = " "; return "foreach(`$File in `$Files) {" }
} }
} }
try { try {
Write-Host -foreground $color "try {"
while ($true) { while ($true) {
Write-Host -foreground $color "$(GetRandomCodeLine)" Write-Host -foreground $color "$(GetRandomCodeLine)"
Start-Sleep -milliseconds $speed Start-Sleep -milliseconds $speed