This commit is contained in:
2025-10-11 15:06:06 +03:00
parent b0499f9a54
commit da293ae85d
2 changed files with 2 additions and 17 deletions
+2 -15
View File
@@ -1,29 +1,20 @@
# Define variables for administrator restart
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
$restartArgs = "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" $restartArgs = "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`""
# Initalize environment . (Join-Path $PSScriptRoot "./src/init.ps1")
$initFile = Join-Path $PSScriptRoot ".\src\init.ps1"
. $initFile
# Check for administrator privileges and restart if needed
if (-not $isAdmin) { if (-not $isAdmin) {
Write-Host "The script requires administrator privileges. Restarting..." Write-Host "The script requires administrator privileges. Restarting..."
# Restart the script with admin rights
Start-Process -FilePath "powershell.exe" -ArgumentList $restartArgs -Verb RunAs Start-Process -FilePath "powershell.exe" -ArgumentList $restartArgs -Verb RunAs
exit exit
} }
Write-Host "Administrator privileges confirmed." Write-Host "Administrator privileges confirmed."
# Interactive module selection
Clear-Host Clear-Host
Write-Host "Select a module:" Write-Host "Select a module:"
$moduleNames = $modules.Keys | Sort-Object $moduleNames = $modules.Keys | Sort-Object
for ($i = 0; $i -lt $moduleNames.Count; $i++) { for ($i = 0; $i -lt $moduleNames.Count; $i++) {
Write-Host "[$($i+1)] $($moduleNames[$i])" Write-Host "[$($i+1)] $($moduleNames[$i])"
} }
do { do {
$moduleSelection = Read-Host "Enter the number of your choice" $moduleSelection = Read-Host "Enter the number of your choice"
$validModule = ($moduleSelection -as [int]) -and ($moduleSelection -ge 1) -and ($moduleSelection -le $moduleNames.Count) $validModule = ($moduleSelection -as [int]) -and ($moduleSelection -ge 1) -and ($moduleSelection -le $moduleNames.Count)
@@ -33,10 +24,8 @@ do {
Clear-Host Clear-Host
$selectedModule = $moduleNames[$moduleSelection - 1] $selectedModule = $moduleNames[$moduleSelection - 1]
$actions = $modules[$selectedModule] $actions = $modules[$selectedModule]
Write-Host "Selected module: $selectedModule" Write-Host "Selected module: $selectedModule"
# Determine action: from argument or interactive menu
if ($args.Count -ge 1) { if ($args.Count -ge 1) {
$action = $args[0] $action = $args[0]
} else { } else {
@@ -44,7 +33,6 @@ if ($args.Count -ge 1) {
for ($i = 0; $i -lt $actions.Count; $i++) { for ($i = 0; $i -lt $actions.Count; $i++) {
Write-Host "[$($i+1)] $($actions[$i])" Write-Host "[$($i+1)] $($actions[$i])"
} }
do { do {
$selection = Read-Host "Enter the number of your choice" $selection = Read-Host "Enter the number of your choice"
$valid = ($selection -as [int]) -and ($selection -ge 1) -and ($selection -le $actions.Count) $valid = ($selection -as [int]) -and ($selection -ge 1) -and ($selection -le $actions.Count)
@@ -57,5 +45,4 @@ if ($args.Count -ge 1) {
Clear-Host Clear-Host
Write-Host "Selected action: $action" Write-Host "Selected action: $action"
# Call the selected module with the chosen action & (Get-Variable $selectedModule).Value $action
. (Get-Variable $selectedModule).Value $action
-2
View File
@@ -1,8 +1,6 @@
# Init
Set-Location -Path $PSScriptRoot Set-Location -Path $PSScriptRoot
$root = Join-Path $PSScriptRoot ".." $root = Join-Path $PSScriptRoot ".."
$varsFile = Join-Path $root "src\vars.ps1" $varsFile = Join-Path $root "src\vars.ps1"
if (Test-Path $varsFile) { if (Test-Path $varsFile) {
. $varsFile . $varsFile