Skip to content

Commit ef040b6

Browse files
authored
Merge pull request #362 from meatpiHQ/standard_params
Standardise Params
2 parents 1f0be35 + 6cf98d2 commit ef040b6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1524
-1698
lines changed

.github/workflows/vehicle_profiles.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ jobs:
2626
cd .vehicle_profiles
2727
npm ci
2828
npm run build
29+
npx prettier ../vehicle_profiles --write
30+
npx prettier . --write
2931
cd -
3032
- name: Commit
3133
uses: EndBug/add-and-commit@v9
3234
with:
33-
add: 'vehicle_profiles.json docs/content/0.Config/6.Automate/2.Supported_Vehicles.md'
35+
add: 'vehicle_profiles.json docs/content/0.Config/6.Automate/2.Supported_Vehicles.md vehicle_profiles/ .vehicle_profiles/'
3436
author_name: Jay Oswald
3537
author_email: jay@oswald.net.au

.vehicle_profiles/.prettierrc

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"plugins": ["prettier-plugin-sort-json"]
3+
}

.vehicle_profiles/merge.js

+65-32
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,84 @@
1-
import { glob } from 'glob'
2-
import { readFile, writeFile } from 'fs/promises';
1+
import { glob } from "glob";
2+
import { readFile, writeFile } from "fs/promises";
3+
import editJsonFile from "edit-json-file";
34

4-
const source_folder = '../vehicle_profiles';
5-
const target = '../vehicle_profiles.json'
5+
const source_folder = "../vehicle_profiles";
6+
const target = "../vehicle_profiles.json";
67

7-
const files = await glob(source_folder + '/**/*.json');
8+
const files = await glob(source_folder + "/**/*.json");
9+
const params = JSON.parse(await readFile("params.json"));
10+
11+
let param_array = Object.getOwnPropertyNames(params);
12+
let schema_file = editJsonFile("schema.json");
13+
const PARAM_PATH =
14+
"properties.pids.items.properties.parameters.propertyNames.enum";
15+
let existing_params = schema_file.get(PARAM_PATH);
16+
if (existing_params !== param_array) {
17+
schema_file.set(PARAM_PATH, param_array);
18+
schema_file.save();
19+
}
820

921
let result = {
10-
'cars': []
22+
cars: [],
1123
};
1224

13-
async function add_json(path){
14-
let data = JSON.parse(await readFile(path));
15-
result.cars.push(data)
25+
async function add_json(path) {
26+
let data = JSON.parse(await readFile(path));
27+
Object.keys(data.pids).forEach((key) => {
28+
let newParams = [];
29+
for (const [param, exp] of Object.entries(data.pids[key].parameters)) {
30+
newParams.push({
31+
name: param,
32+
expression: exp,
33+
...params[param].settings,
34+
});
35+
}
36+
data.pids[key].parameters = newParams;
37+
});
38+
result.cars.push(data);
1639
}
1740

1841
let promises = [];
19-
files.forEach(file => {
20-
promises.push(add_json(file));
42+
files.forEach((file) => {
43+
promises.push(add_json(file));
2144
});
2245

2346
await Promise.all(promises);
2447

25-
result.cars.sort((a,b) => {
26-
let first = a.car_model.toLowerCase();
27-
let second = b.car_model.toLowerCase();
28-
return (first < second) ? -1 : (first > second ) ? 1 : 0;
48+
result.cars.sort((a, b) => {
49+
let first = a.car_model.toLowerCase();
50+
let second = b.car_model.toLowerCase();
51+
return first < second ? -1 : first > second ? 1 : 0;
2952
});
3053

3154
const resultString = JSON.stringify(result);
3255
//Use below line instead for generating pretty json
3356
// result = JSON.stringify(result, null, 2);
34-
await writeFile(target, resultString)
35-
36-
const models = result.cars.map(car => car.car_model).filter(model => model !== 'AAA: Generic');
37-
let supportedVehiclesListContent = '';
38-
supportedVehiclesListContent += '<!--\n';
39-
supportedVehiclesListContent += '================================================================\n'
40-
supportedVehiclesListContent += 'THIS FILE WAS GENERATED! DO NOT UPDATE OR YOUR CHANGES ARE LOST!\n'
41-
supportedVehiclesListContent += '================================================================\n'
42-
supportedVehiclesListContent += '-->\n';
43-
supportedVehiclesListContent += '# Supported Vehicles\n';
44-
supportedVehiclesListContent += 'For vehicles listed below a WiCAN vehicle profiles exists:\n';
45-
models.forEach(model => supportedVehiclesListContent += `- ${model}\n`);
46-
47-
const supportedVehiclesListFilepath = await glob('../docs/content/*.Config/*.Automate/*.Supported_Vehicles.md')
48-
if(supportedVehiclesListFilepath.length == 0 || supportedVehiclesListFilepath.length != 1) {
49-
throw new Error('Unable to determine automateDirectory');
57+
await writeFile(target, resultString);
58+
59+
const models = result.cars
60+
.map((car) => car.car_model)
61+
.filter((model) => model !== "AAA: Generic");
62+
let supportedVehiclesListContent =
63+
`<!--
64+
65+
================================================================
66+
THIS FILE WAS GENERATED! DO NOT UPDATE OR YOUR CHANGES ARE LOST!
67+
================================================================
68+
69+
-->
70+
# Supported Vehicles
71+
For vehicles listed below a WiCAN vehicle profiles exists:
72+
`;
73+
models.forEach((model) => ( supportedVehiclesListContent += `- ${model}\n`));
74+
75+
const supportedVehiclesListFilepath = await glob(
76+
"../docs/content/*.Config/*.Automate/*.Supported_Vehicles.md",
77+
);
78+
if (
79+
supportedVehiclesListFilepath.length == 0 ||
80+
supportedVehiclesListFilepath.length != 1
81+
) {
82+
throw new Error("Unable to determine automateDirectory");
5083
}
51-
await writeFile(supportedVehiclesListFilepath[0], supportedVehiclesListContent);
84+
await writeFile(supportedVehiclesListFilepath[0], supportedVehiclesListContent);

.vehicle_profiles/package-lock.json

+126-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.vehicle_profiles/package.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
"type": "module",
1313
"dependencies": {
1414
"ajv": "^8.17.1",
15-
"glob": "^11.0.0"
15+
"edit-json-file": "^1.8.1",
16+
"glob": "^11.0.0",
17+
"prettier": "^3.5.3"
18+
},
19+
"devDependencies": {
20+
"prettier-plugin-sort-json": "^4.1.1"
1621
}
1722
}

0 commit comments

Comments
 (0)