Files
2026-09-01 10:46:29 -03:00

55 lines
1.8 KiB
PowerShell
Executable File

<#
.SYNOPSIS
Wrapper script for SysCMS Docker commands to speed up development.
#>
param(
[Parameter(Mandatory=$true, Position=0)]
[string]$Command,
[Parameter(ValueFromRemainingArguments=$true)]
[string[]]$RestArgs
)
$ContainerName = "dockersyscms"
$WorkDir = "/app"
switch ($Command) {
"php" {
# Pass arguments individually to preserve quoting if possible,
# but PowerShell -> Docker -> Linux argument parsing is complex.
# Joining with spaces is a reasonable approximation for most CLI args.
docker exec -w $WorkDir $ContainerName php $RestArgs
}
"composer" {
docker exec -w $WorkDir $ContainerName composer $RestArgs
}
"mysql" {
$query = $RestArgs -join " "
docker exec $ContainerName mysql -u root -proot -D syscms -e "$query"
}
"test" {
docker exec -w $WorkDir $ContainerName php vendor/bin/phpunit $RestArgs
}
"lint" {
docker exec -w $WorkDir $ContainerName vendor/bin/phpcs --standard=PSR12 app/ kernel/ modules/
}
"fix" {
docker exec -w $WorkDir $ContainerName vendor/bin/phpcbf --standard=PSR12 app/ kernel/ modules/
}
"logs" {
docker logs -f --tail 100 $ContainerName
}
"check" {
Write-Host "--- Running Lint ---" -ForegroundColor Cyan
docker exec -w $WorkDir $ContainerName vendor/bin/phpcs --standard=PSR12 app/ kernel/ modules/
Write-Host "--- Running Tests ---" -ForegroundColor Cyan
docker exec -w $WorkDir $ContainerName php vendor/bin/phpunit
}
default {
Write-Host "Unknown command: $Command" -ForegroundColor Red
Write-Host "Available commands: php, composer, mysql, test, lint, fix, logs, check" -ForegroundColor Yellow
Write-Host "Example: .\sys.ps1 php syscli list"
}
}