()
| 648 | } |
| 649 | |
| 650 | async function statusDaemon(): Promise<void> { |
| 651 | const layout = resolveDaemonLayout(); |
| 652 | switch (layout.platform) { |
| 653 | case 'darwin': |
| 654 | await runCommand('launchctl', ['print', `gui/${process.getuid?.() ?? 0}/${layout.launchdLabel!}`]); |
| 655 | return; |
| 656 | case 'linux': |
| 657 | await runCommand('systemctl', ['--user', 'status', layout.systemdServiceName!, '--no-pager']); |
| 658 | return; |
| 659 | case 'win32': |
| 660 | await runPowerShellScript([ |
| 661 | '$ErrorActionPreference = "Stop"', |
| 662 | `$TaskName = ${toPowerShellString(layout.windowsTaskName ?? WINDOWS_TASK_NAME)}`, |
| 663 | '$Task = Get-ScheduledTask -TaskName $TaskName', |
| 664 | '$Info = Get-ScheduledTaskInfo -TaskName $TaskName', |
| 665 | '$Task | Select-Object TaskName, State | Format-List | Out-String | Write-Host', |
| 666 | '$Info | Select-Object LastRunTime, LastTaskResult, NextRunTime, NumberOfMissedRuns | Format-List | Out-String | Write-Host', |
| 667 | ].join('\n')); |
| 668 | return; |
| 669 | default: |
| 670 | throw new Error(`Unsupported daemon platform: ${layout.platform}`); |
| 671 | } |
| 672 | } |
| 673 | |
| 674 | async function logsDaemon({ |
| 675 | follow, |
no test coverage detected