MCPcopy
hub / github.com/opentrace/opentrace / main

Function main

ui/bin/copy-wasm.js:61–123  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

59}
60
61async function main() {
62 const args = process.argv.slice(2);
63
64 if (args.includes('--help') || args.length === 0) {
65 printUsage();
66 process.exit(args.includes('--help') ? 0 : 1);
67 }
68
69 let languages = null;
70 let runtimeOnly = false;
71 let destDir = null;
72
73 for (let i = 0; i < args.length; i++) {
74 if (args[i] === '--languages' && i + 1 < args.length) {
75 languages = new Set(args[++i].split(',').map((s) => s.trim()));
76 } else if (args[i] === '--runtime-only') {
77 runtimeOnly = true;
78 } else if (!args[i].startsWith('-')) {
79 destDir = args[i];
80 }
81 }
82
83 if (!destDir) {
84 console.error('Error: destination directory is required');
85 printUsage();
86 process.exit(1);
87 }
88
89 const dest = resolve(destDir);
90 await mkdir(dest, { recursive: true });
91
92 const files = await readdir(WASM_DIR);
93 let copied = 0;
94
95 for (const file of files) {
96 if (!file.endsWith('.wasm')) continue;
97
98 // Always copy the runtime
99 if (file === 'web-tree-sitter.wasm') {
100 await copyFile(join(WASM_DIR, file), join(dest, file));
101 copied++;
102 continue;
103 }
104
105 if (runtimeOnly) continue;
106
107 // Filter by language if specified
108 if (languages) {
109 const lang = file
110 .replace('tree-sitter-', '')
111 .replace('.wasm', '')
112 .replace('c_sharp', 'csharp');
113 if (!languages.has(lang)) continue;
114 }
115
116 await copyFile(join(WASM_DIR, file), join(dest, file));
117 copied++;
118 }

Callers 1

copy-wasm.jsFile · 0.70

Calls 5

printUsageFunction · 0.85
mkdirFunction · 0.85
readdirFunction · 0.85
errorMethod · 0.80
logMethod · 0.80

Tested by

no test coverage detected