Compare commits

7 Commits

Author SHA1 Message Date
f08a579246 Add semi-colons to match personal code style
All checks were successful
Generate Release / validate_and_release (push) Successful in 8s
2026-02-21 19:43:17 +00:00
adb538cbc4 Fix JSONL inclusion?
All checks were successful
Generate Release / validate_and_release (push) Successful in 6s
2026-01-03 23:42:06 +00:00
d00eb5cf6c Try fix included files again
All checks were successful
Generate Release / validate_and_release (push) Successful in 6s
2026-01-03 23:39:28 +00:00
247a997353 Fix path to JSONL
All checks were successful
Generate Release / validate_and_release (push) Successful in 5s
2026-01-03 23:38:24 +00:00
cc14397588 Fix YAML Parsing in jsonl generator
All checks were successful
Generate Release / validate_and_release (push) Successful in 5s
2026-01-03 23:36:43 +00:00
d058ba8eed Add jsonl output to releases
Some checks failed
Generate Release / validate_and_release (push) Failing after 7s
2026-01-03 23:35:58 +00:00
36243c7457 Remove 'toc' from output files, this will be handled by data-ingress 2026-01-03 23:11:43 +00:00
4 changed files with 54 additions and 11 deletions

View File

@@ -20,6 +20,21 @@ jobs:
id: timestamp
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')"
- name: Install Dependencies
run: npm i
- name: Create JSON Lines
run: node ./scripts/ndjson-out.js ./pis/codes.yaml
- name: Verify JSONL Output
run: |
if [ ! -s pis-objects.jsonl ]; then
echo "Error: pis-objects.jsonl is empty or missong"
exit 1
fi
echo "File verified"
pwd
- name: Create Release
if: success()
uses: akkuman/gitea-release-action@v1
@@ -30,3 +45,5 @@ jobs:
tag_name: ${{ steps.timestamp.outputs.date }}
name: ${{ steps.timestamp.outputs.date }}
token: ${{ secrets.OWLBOT_KEY }}
files: |-
pis-objects.jsonl

View File

@@ -1,7 +1,7 @@
const fs = require('fs')
const yaml = require('yaml')
const fs = require('fs');
const yaml = require('yaml');
const directoryPath = './pis/'
const directoryPath = './pis/';
function sortAndMergeYAMLFiles() {
try {
@@ -12,15 +12,15 @@ function sortAndMergeYAMLFiles() {
files.forEach(file => {
const data = fs.readFileSync(directoryPath + file, 'utf-8');
const parsedData = yaml.parse(data)
const parsedData = yaml.parse(data);
if (parsedData && typeof parsedData === 'object' && parsedData.pis) {
mergedData.push(...parsedData.pis)
mergedData.push(...parsedData.pis);
} else {
if (Array.isArray(parsedData)) {
mergedData.push(...parsedData);
} else {
console.error("Incorrect YAML")
console.error("Incorrect YAML");
}
}
});
@@ -29,7 +29,7 @@ function sortAndMergeYAMLFiles() {
const codeA = parseInt(a.code);
const codeB = parseInt(b.code);
return codeA - codeB
})
});
@@ -41,15 +41,14 @@ function sortAndMergeYAMLFiles() {
seenCodes.add(item.code);
outputString += ` - code: "${item.code}"\n`;
outputString += ` stops: [${item.stops.map(stop => `${stop}`).join(',')}]\n`;
outputString += ` toc: "${item.toc || "gw"}"\n`;
}
});
try {
fs.writeFileSync('./pis/codes.yaml', outputString);
console.log("Overwritten codes.yaml")
console.log("Overwritten codes.yaml");
} catch (err) {
console.error("Error writing codes.yaml", err)
console.error("Error writing codes.yaml", err);
}
// Remove any new files
@@ -61,7 +60,7 @@ function sortAndMergeYAMLFiles() {
});
} catch(err) {
console.error('Error merging YAML:', err)
console.error('Error merging YAML:', err);
}
}

27
scripts/ndjson-out.js Normal file
View File

@@ -0,0 +1,27 @@
const fs = require('fs');
const yaml = require('yaml');
const inputFile = process.argv[2];
const outputFile = 'pis-objects.jsonl';
if (!inputFile) {
console.error('Please provide an input YAML file');
process.exit(1);
}
try {
const fileContent = fs.readFileSync(inputFile, 'utf8');
const data = yaml.parse(fileContent);
if (!data || !data.pis || !Array.isArray(data.pis)) {
throw new Error('Invalid structure: Expected object with "pis" array.');
}
const jsonl = data.pis.map(item => JSON.stringify(item));
fs.writeFileSync(outputFile, jsonl.join('\n') + '\n');
console.log(`Successfully processed ${data.pis.length} items.`);
} catch (e) {
console.error("Conversion failed: ", e.message);
process.exit(1);
}

0
scripts/test.yaml Normal file
View File