ChamplainTechJournals/automation-sys320/week07/Configuration.ps1
2025-04-19 23:42:08 -04:00

74 lines
No EOL
1.6 KiB
PowerShell

#10/12/24
function readConfiguration(){
Set-Location "C:\Users\champuser\SYS320\week7"
$configs = (Get-Content -Path ./configuration.txt)
$days = $configs[0]
$time = $configs[1]
return [PSCustomObject]@{
Days = $days
ExecutionTime = $time
}
}
function changeConfiguration(){
$daysBack = Read-Host -Prompt "Number of days for which the logs will be obtained"
if($daysBack -notmatch '^[0-9]+$'){
Write-Host "invalid input. digits only" | Out-String
continue
}
$executionTime = Read-Host -Prompt "Daily execution time of the script"
if($executionTime -inotmatch '^(1?[1-9]):([0-5][0-9])\s(AM|PM)$'){
Write-Host "invalid input. digit:digitdigit am/pm allowed" | Out-String
continue
}
"$daysBack`n$executionTime" | Set-Content ./configuration.txt
Write-Host "Configuration Changed`n" | Out-String
}
#main loop
function configurationMenu(){
clear
$Prompt = "`nPlease choose your operation:`n"
$Prompt += "1 - Show Configuration`n"
$Prompt += "2 - Change Configuration`n"
$Prompt += "3 - Exit`n"
$operation = $true
while($operation){
Write-Host $Prompt | Out-String
$choice = Read-Host
# exit
if($choice -eq 3){
Write-Host "Goodbye" | Out-String
exit
$operation = $false
}
# show configuration
elseif($choice -eq 1){
$config = readConfiguration
$config
}
# change configuration
elseif($choice -eq 2){
changeConfiguration
}
else{
Write-Host "invalid input: 1-3 allowed`n" | Out-String
}
}
}
#configurationMenu