mirror of
https://github.com/linuxserver/kasm_workspaces_registry.git
synced 2026-02-19 16:57:41 +08:00
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
const fs = require("fs");
|
|
const glob = require("glob");
|
|
const { execSync } = require('child_process');
|
|
|
|
|
|
glob("../workspaces/**/workspace.json", function (err, files) {
|
|
if (err) {
|
|
console.log(
|
|
"cannot read the folder, something goes wrong with glob",
|
|
err
|
|
);
|
|
}
|
|
|
|
let total = 0
|
|
for (const file of files) {
|
|
|
|
let filedata = fs.readFileSync(file);
|
|
let parsed = JSON.parse(filedata);
|
|
|
|
|
|
parsed.compatibility.forEach((element, index) => {
|
|
total++
|
|
if (element.uncompressed_size_mb === 0) {
|
|
execSync('docker image prune -a -f')
|
|
execSync('docker system prune --all --force --volumes')
|
|
|
|
let pull = execSync('docker pull ' + element.image)
|
|
// console.log(pull)
|
|
let inspect = execSync('docker inspect -f "{{ .Size }}" ' + element.image)
|
|
let size = Math.round(inspect / 1000000)
|
|
let remove = execSync('docker rmi ' + element.image)
|
|
console.log(remove)
|
|
parsed.compatibility[index].uncompressed_size_mb = size
|
|
console.log('Write file: ' + parsed.friendly_name + ' - ' + element.version + ': ' + size)
|
|
fs.writeFileSync(file, JSON.stringify(parsed, null, 2));
|
|
} else {
|
|
console.log(parsed.friendly_name + ' - ' + element.version + ': skipped')
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
console.log(total + ' entries processed')
|
|
|
|
});
|