const fs = require('fs') const yaml = require('yaml') const directoryPath = './pis/' function sortAndMergeYAMLFiles() { try { const files = fs.readdirSync(directoryPath); let mergedData = []; files.forEach(file => { const data = fs.readFileSync(directoryPath + file, 'utf-8'); const parsedData = yaml.parse(data) if (parsedData && typeof parsedData === 'object' && parsedData.pis) { mergedData.push(...parsedData.pis) } else { if (Array.isArray(parsedData)) { mergedData.push(...parsedData); } else { console.error("Incorrect YAML") } } }); mergedData.sort((a, b) => { const codeA = parseInt(a.code); const codeB = parseInt(b.code); return codeA - codeB }) const mergedYaml = yaml.stringify(mergedData); // Construct the output string let outputString = "pis:\n"; mergedData.forEach(item => { if (item.stops.length > 0) { outputString += ` - code: "${item.code}"\n`; outputString += ` stops: [${item.stops.map(stop => `${stop}`).join(',')}]\n`; } }); try { fs.writeFileSync('./pis/gw.yaml', outputString); console.log("Overwritten gw.pis") } catch (err) { console.error("Error writing gw.pis", err) } files.forEach(file => { if (file.startsWith('dg_parser')) { fs.unlinkSync(directoryPath + file); console.log(`Deleted file: ${file}`); } }); } catch(err) { console.error('Error merging YAML:', err) } } sortAndMergeYAMLFiles();