Skip to content

Commit c63debc

Browse files
committed
fix: use "|" as indicator for alias
1 parent 221daba commit c63debc

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

bin/cli-utils.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -289,9 +289,9 @@ Usage:
289289
npx wgsl-gen [options]
290290
291291
Options:
292-
--input, -i <dir>[:@<alias>] Source directory containing WGSL template files (required)
292+
--input, -i <dir>[|@<alias>] Source directory containing WGSL template files (required)
293293
Can be specified multiple times for multiple directories
294-
Optional alias: "dir:@alias" to prefix template names
294+
Optional alias: "dir|@alias" to prefix template names
295295
--output, -o <dir> Output directory for generated files (required)
296296
--generator <n> Code generator to use (default: "static-cpp-literal")
297297
Available: "dynamic", "static-cpp", "static-cpp-literal"
@@ -311,8 +311,9 @@ Examples:
311311
npx wgsl-gen -i ./src -o ./build --include-prefix "myproject/"
312312
npx wgsl-gen -i ./templates -o ./generated --clean --verbose
313313
npx wgsl-gen -i ./templates -o ./generated --watch --debounce 500
314-
npx wgsl-gen -i ./common -i ./effects:@fx --output ./generated
315-
npx wgsl-gen -i ./base -i ./shaders:@shaders -i ./utils:@utils -o ./cpp
314+
npx wgsl-gen -i ./common -i ./effects|@fx --output ./generated
315+
npx wgsl-gen -i ./base -i ./shaders|@shaders -i ./utils|@utils -o ./cpp
316+
npx wgsl-gen -i "C:\\Projects\\templates" -i "D:\\shared\\effects|@fx" -o ./build
316317
`);
317318
}
318319

@@ -358,28 +359,33 @@ export function validateOptions(options: CliOptions): string[] {
358359

359360
/**
360361
* Parse input directories with optional aliases from CLI arguments
361-
* Format: "dir1" or "dir1:@alias1" or ["dir1", "dir2:@alias2"]
362+
* Format: "dir1" or "dir1|@alias1" or ["dir1", "dir2|@alias2"]
362363
*/
363364
export function parseInputDirectories(input: string | string[]): ({ path: string; alias?: string } | string)[] {
364365
const inputs = Array.isArray(input) ? input : [input];
365366

366367
return inputs.map((inputStr) => {
367-
const parts = inputStr.split(":");
368-
if (parts.length === 1) {
368+
const pipeIndex = inputStr.indexOf("|");
369+
if (pipeIndex === -1) {
369370
// No alias specified
370-
return parts[0];
371-
} else if (parts.length === 2) {
371+
return inputStr;
372+
} else {
372373
// Alias specified
373-
const [dirPath, alias] = parts;
374+
const dirPath = inputStr.substring(0, pipeIndex);
375+
const alias = inputStr.substring(pipeIndex + 1);
376+
374377
if (!alias.startsWith("@")) {
375-
throw new Error(`Invalid alias format: ${alias}. Aliases must start with '@'. Example: "dir:@alias"`);
378+
throw new Error(`Invalid alias format: ${alias}. Aliases must start with '@'. Example: "dir|@alias"`);
379+
}
380+
381+
if (dirPath.length === 0) {
382+
throw new Error(`Invalid input format: ${inputStr}. Directory path cannot be empty. Example: "dir|@alias"`);
376383
}
384+
377385
return {
378386
path: dirPath,
379387
alias: alias,
380388
};
381-
} else {
382-
throw new Error(`Invalid input format: ${inputStr}. Expected "dir" or "dir:@alias"`);
383389
}
384390
});
385391
}

0 commit comments

Comments
 (0)