Initial commit
This commit is contained in:
48
processing/add_next_version.js
Normal file
48
processing/add_next_version.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const fs = require("fs");
|
||||
const glob = require("glob");
|
||||
|
||||
const baseversion = '1.16'
|
||||
const tag = ':develop'
|
||||
|
||||
const version = baseversion + '.x'
|
||||
const tagversion = baseversion + '.0'
|
||||
|
||||
glob("../workspaces/**/workspace.json", async function (err, files) {
|
||||
if (err) {
|
||||
console.log(
|
||||
"cannot read the folder, something goes wrong with glob",
|
||||
err
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
for (const file of files) {
|
||||
|
||||
let filedata = fs.readFileSync(file);
|
||||
let parsed = JSON.parse(filedata);
|
||||
|
||||
const current = parsed.compatibility[parsed.compatibility.length - 1]
|
||||
const image = current.image.split(':')[0]
|
||||
|
||||
const exists = parsed.compatibility.findIndex(el => el.version === version)
|
||||
|
||||
let details = {
|
||||
version,
|
||||
image: image + tag,
|
||||
uncompressed_size_mb: 0,
|
||||
available_tags: [
|
||||
'develop',
|
||||
tagversion,
|
||||
tagversion + '-rolling-weekly',
|
||||
tagversion + '-rolling-daily'
|
||||
]
|
||||
}
|
||||
|
||||
if (exists === -1) {
|
||||
parsed.compatibility.push(details)
|
||||
fs.writeFileSync(file, JSON.stringify(parsed, null, 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
45
processing/get_image_sizes.js
Normal file
45
processing/get_image_sizes.js
Normal file
@@ -0,0 +1,45 @@
|
||||
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')
|
||||
|
||||
});
|
||||
326
processing/package-lock.json
generated
Normal file
326
processing/package-lock.json
generated
Normal file
@@ -0,0 +1,326 @@
|
||||
{
|
||||
"name": "Kasm-Apps",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "Kasm-Apps",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"folder-hash": "^4.0.2",
|
||||
"glob": "^7.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/folder-hash": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/folder-hash/-/folder-hash-4.0.2.tgz",
|
||||
"integrity": "sha512-Iw9GCqdA+zHfDVvk90TSAV66jq0IwiZaPvPgUiW+DHRwnaPOeZomzlgutx9QclinsQGz/XcVIGlDEJbFhCV5wA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": "^4.3.3",
|
||||
"graceful-fs": "~4.2.9",
|
||||
"minimatch": "~5.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"folder-hash": "bin/folder-hash"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "7.2.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
||||
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.1.1",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/glob/node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/glob/node_modules/minimatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/graceful-fs": {
|
||||
"version": "4.2.10",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
|
||||
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
|
||||
"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
||||
"dev": true
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"folder-hash": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/folder-hash/-/folder-hash-4.0.2.tgz",
|
||||
"integrity": "sha512-Iw9GCqdA+zHfDVvk90TSAV66jq0IwiZaPvPgUiW+DHRwnaPOeZomzlgutx9QclinsQGz/XcVIGlDEJbFhCV5wA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "^4.3.3",
|
||||
"graceful-fs": "~4.2.9",
|
||||
"minimatch": "~5.0.0"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.2.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
||||
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.1.1",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.10",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
|
||||
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
|
||||
"dev": true
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
|
||||
"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
|
||||
"dev": true
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
17
processing/package.json
Normal file
17
processing/package.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "Kasm-Apps",
|
||||
"version": "1.0.0",
|
||||
"description": "Generate json file",
|
||||
"main": "processjson.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"bugs": {},
|
||||
"devDependencies": {
|
||||
"folder-hash": "^4.0.2",
|
||||
"glob": "^7.1.6"
|
||||
}
|
||||
}
|
||||
91
processing/processjson.js
Normal file
91
processing/processjson.js
Normal file
@@ -0,0 +1,91 @@
|
||||
const fs = require("fs");
|
||||
const glob = require("glob");
|
||||
const { hashElement } = require("folder-hash");
|
||||
const nextConfig = require("../site/next.config.js")
|
||||
|
||||
var dir = "./public";
|
||||
|
||||
if (!fs.existsSync(dir)) {
|
||||
fs.mkdirSync(dir);
|
||||
}
|
||||
if (!fs.existsSync(dir + "/icons")) {
|
||||
fs.mkdirSync(dir + "/icons");
|
||||
}
|
||||
|
||||
glob("**/workspace.json", async function (err, files) {
|
||||
if (err) {
|
||||
console.log(
|
||||
"cannot read the folder, something goes wrong with glob",
|
||||
err
|
||||
);
|
||||
}
|
||||
|
||||
let workspacetotal = files.length;
|
||||
let workspaces = [];
|
||||
let promises = [];
|
||||
|
||||
const options = {
|
||||
algho: "sha1",
|
||||
encoding: "hex",
|
||||
};
|
||||
|
||||
let channels = new Set()
|
||||
let versions = new Set()
|
||||
|
||||
for (const file of files) {
|
||||
//files.forEach(async function(file) {
|
||||
|
||||
let folder = file.replace("/workspace.json", "");
|
||||
|
||||
let hash = await hashElement(folder, options);
|
||||
let filedata = fs.readFileSync(file);
|
||||
|
||||
let parsed = JSON.parse(filedata);
|
||||
parsed.sha = hash.hash;
|
||||
console.log(parsed.friendly_name + ' added')
|
||||
parsed.compatibility.forEach((element, index) => {
|
||||
if ('available_tags' in element) {
|
||||
element.available_tags.forEach((el) => {
|
||||
channels.add(el)
|
||||
})
|
||||
}
|
||||
if ('version' in element) {
|
||||
versions.add(element.version)
|
||||
}
|
||||
})
|
||||
workspaces.push(parsed);
|
||||
|
||||
if (fs.existsSync(folder + "/" + parsed.image_src)) {
|
||||
let imagedata = fs.readFileSync(folder + "/" + parsed.image_src);
|
||||
fs.writeFileSync(dir + "/icons/" + parsed.image_src, imagedata);
|
||||
} else {
|
||||
console.error("missing file: ".folder + "/" + parsed.image_src);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let json = {
|
||||
name: nextConfig.env.name || 'Unknown store',
|
||||
workspacecount: workspacetotal,
|
||||
icon: nextConfig.env.icon || null,
|
||||
description: nextConfig.env.description || null,
|
||||
list_url: nextConfig.env.listUrl || null,
|
||||
contact_url: nextConfig.env.contactUrl || null,
|
||||
modified: Date.now(),
|
||||
workspaces: workspaces,
|
||||
channels: [...channels],
|
||||
default_channel: 'develop'
|
||||
};
|
||||
|
||||
if (channels.size === 0) {
|
||||
json.default_channel = null
|
||||
}
|
||||
|
||||
let data = JSON.stringify(json);
|
||||
|
||||
fs.writeFileSync(dir + "/list.json", data);
|
||||
fs.writeFileSync(dir + "/versions.json", JSON.stringify({
|
||||
versions: [...versions]
|
||||
}));
|
||||
|
||||
});
|
||||
41
processing/update_1_0_to_1_1.js
Normal file
41
processing/update_1_0_to_1_1.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const fs = require("fs");
|
||||
const glob = require("glob");
|
||||
|
||||
glob("../workspaces/**/workspace.json", async function (err, files) {
|
||||
if (err) {
|
||||
console.log(
|
||||
"cannot read the folder, something goes wrong with glob",
|
||||
err
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
for (const file of files) {
|
||||
|
||||
let filedata = fs.readFileSync(file);
|
||||
let parsed = JSON.parse(filedata);
|
||||
delete parsed.compatibility
|
||||
|
||||
parsed.compatibility = []
|
||||
|
||||
let details = {
|
||||
version: '1.16.x',
|
||||
image: parsed.name.split(':')[0] + ':1.16.0-rolling-daily',
|
||||
uncompressed_size_mb: parsed.uncompressed_size_mb,
|
||||
available_tags: [
|
||||
'develop',
|
||||
'1.16.0',
|
||||
'1.16.0-rolling-weekly',
|
||||
'1.16.0-rolling-daily'
|
||||
]
|
||||
}
|
||||
|
||||
parsed.compatibility.push(details)
|
||||
delete parsed.uncompressed_size_mb
|
||||
delete parsed.name
|
||||
|
||||
fs.writeFileSync(file, JSON.stringify(parsed, null, 2));
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user