adding pack tools.

This commit is contained in:
rwanoux
2024-11-18 09:27:33 +01:00
parent e721c706eb
commit ca816eec2d
5 changed files with 129 additions and 7 deletions
+52
View File
@@ -0,0 +1,52 @@
import { extractPack } from "@foundryvtt/foundryvtt-cli";
import { promises as fs } from "fs";
import path from "path";
const MODULE_ID = process.cwd();
const yaml = true;
const log = true;
const packs = await fs.readdir("./packs");
for (const pack of packs) {
if (pack === ".gitattributes") continue;
const packPath = path.join("./packs", pack);
const stats = await fs.lstat(packPath); // Utilisation de lstat pour vérifier si c'est un fichier ou un répertoire
if (!stats.isDirectory()) {
console.log(`${pack} est un fichier, il est ignoré.`);
continue; // Si ce n'est pas un répertoire, passer à l'élément suivant
}
console.log("Unpacking " + pack);
const directory = `./src/packs/${pack}`;
try {
console.log(directory);
for (const file of await fs.readdir(directory)) {
await fs.unlink(path.join(directory, file));
}
} catch (error) {
if (error.code === "ENOENT") console.log("No files inside of " + pack);
else console.log(error);
}
await extractPack(
`${MODULE_ID}/packs/${pack}`,
`${MODULE_ID}/src/packs/${pack}`,
{
yaml,
transformName,
log
}
);
}
/**
* Prefaces the document with its type
* @param {object} doc - The document data
*/
function transformName(doc) {
const safeFileName = doc.name.replace(/[^a-zA-Z0-9А-я]/g, "_");
const type = doc._key.split("!")[1];
const prefix = ["actors", "items"].includes(type) ? doc.type : type;
return `${doc.name ? `${prefix}_${safeFileName}_${doc._id}` : doc._id}.${yaml ? "yml" : "json"
}`;
}