Skip to content

Commit a402f9f

Browse files
committed
Add verbosity
1 parent 335327b commit a402f9f

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

packages/php-wasm/cli/src/lib/run-cli.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ import { PHP } from '@php-wasm/universal';
1313
import { loadNodeRuntime, useHostFilesystem } from '@php-wasm/node';
1414
import { startBridge } from '@php-wasm/xdebug-bridge';
1515
import path from 'path';
16+
import { logger, LogSeverity } from '@php-wasm/logger';
17+
18+
const LogVerbosity = {
19+
Quiet: { name: 'quiet', severity: LogSeverity.Fatal },
20+
Normal: { name: 'normal', severity: LogSeverity.Info },
21+
Debug: { name: 'debug', severity: LogSeverity.Debug },
22+
} as const;
23+
24+
type LogVerbosity = (typeof LogVerbosity)[keyof typeof LogVerbosity]['name'];
1625

1726
interface CLIDefaults {
1827
directive: string[];
@@ -25,6 +34,8 @@ interface CLIArgs {
2534
directive: string[];
2635
xdebug?: boolean;
2736
experimentalDevtools?: boolean;
37+
verbosity?: LogVerbosity;
38+
help?: boolean;
2839
}
2940

3041
function parseCliArgs(defaults: CLIDefaults) {
@@ -58,6 +69,14 @@ Usage: php-wasm-cli <command> [options]
5869
describe: 'Enable experimental browser development tools.',
5970
default: false,
6071
})
72+
.option('verbosity', {
73+
type: 'string',
74+
describe: 'Output logs',
75+
choices: Object.values(LogVerbosity).map(
76+
(verbosity) => verbosity.name
77+
),
78+
default: 'normal',
79+
})
6180
.strictCommands()
6281
.help()
6382
.epilog(
@@ -112,6 +131,17 @@ export async function parseOptionsAndRunCLI(): Promise<void> {
112131
config: defaultPhpIniPath,
113132
});
114133

134+
if (args.help) {
135+
return;
136+
}
137+
138+
if (args.verbosity) {
139+
const severity = Object.values(LogVerbosity).find(
140+
(v) => v.name === args.verbosity
141+
)!.severity;
142+
logger.setSeverityFilterLevel(severity);
143+
}
144+
115145
// npm scripts set the TMPDIR env variable
116146
// PHP accepts a TMPDIR env variable and expects it to
117147
// be a writable directory within the PHP filesystem.

0 commit comments

Comments
 (0)