v3mt
Version:
A CLI toolkit for managing and deploying Victoria 3 mods, including sending mod files to the game, launching the game, and more.
45 lines (44 loc) • 1.42 kB
JavaScript
import fs from 'fs';
import path from 'path';
import { Config } from '../utils/config/config.js';
import Logger from '../utils/logger/logger.js';
const FOLDER_STRUCTURE = [
'common',
'common/buildings',
'common/goods',
'common/modifier_type_definitions',
'common/production_methods',
'common/production_method_groups',
'common/script_values',
'gfx',
'gfx/interface',
'gfx/interface/icons',
'gfx/interface/icons/building_icons',
'gfx/interface/icons/goods_icons',
'gfx/interface/icons/production_method_icons',
'localization',
'localization/english',
];
const command = 'setup-mod-folders';
const use = (program) => {
return program.command(command).description('sets up common mod folders').action(task);
};
const setupModFolders = { use, command, task };
export default setupModFolders;
async function task() {
const config = Config.fromFile();
const modSource = config.MOD_SOURCE_FOLDER;
if (!modSource) {
Logger.kill("MOD_SOURCE_FOLDER config setting is not set. Please run 'v3mt init'");
}
for (const folder of FOLDER_STRUCTURE) {
const folderPath = path.join(modSource, folder);
if (!fs.existsSync(folderPath)) {
fs.mkdirSync(folderPath, { recursive: true });
Logger.pass(`Created: ${folder}`);
}
else {
Logger.info(`Exists: ${folder}`);
}
}
}