Files
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

59 lines
1.6 KiB
TypeScript

// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
//
// SPDX-License-Identifier: Apache-2.0
import * as path from 'path';
import { promises as fs } from 'fs';
const source = process.argv[2];
const target = process.argv[3];
console.log(`Copying assets from ${source} to ${target}`);
if (!source || !target) {
console.error(
`Error: need valid source and target. Received source: ${source}, target: ${target}`,
);
process.exit(1);
}
async function copyDirectory(src: string, dest: string) {
try {
await fs.mkdir(dest, { recursive: true });
console.log(`Created "${dest}" directory`);
const entries = await fs.readdir(src, { withFileTypes: true });
for (const entry of entries) {
const srcPath = path.join(src, entry.name);
const destPath = path.join(dest, entry.name);
if (entry.isDirectory()) {
await copyDirectory(srcPath, destPath);
} else {
await fs.copyFile(srcPath, destPath);
console.log(`Copied ${srcPath} to ${destPath}`);
}
}
} catch (err) {
console.error('Error copying directory:', err);
process.exit(1);
}
}
async function copy(s: string, t: string) {
const srcDir = path.resolve(s);
const destDir = path.resolve(t);
await copyDirectory(srcDir, destDir);
console.log(`Successfully copied assets from ${srcDir} to ${destDir}`);
}
copy(source, target)
.then(() => {
console.log(`Completed copying assets from ${source} to ${target}`);
process.exit(0);
})
.catch((err) => {
console.error('Unhandled error:', err);
process.exit(1);
});