38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
const mylog = require('./mylog');
|
|
const config = require('./config');
|
|
const cdbfetch = require('./cdbfetch');
|
|
|
|
const sortser = obj => JSON.stringify(Array.isArray(obj) ? obj.sort() : obj);
|
|
|
|
module.exports = async () => {
|
|
const pkgurl = `/packages/${config.user}/${config.pkg}/`;
|
|
mylog('checking existing package metadata...');
|
|
const resp = await cdbfetch(pkgurl);
|
|
|
|
const edits = {};
|
|
for(let k of Object.keys(resp.body)) {
|
|
if(k === 'screenshots') continue;
|
|
const o = resp.body[k];
|
|
let n = config[k];
|
|
if(n === undefined || sortser(o) === sortser(n)) continue;
|
|
console.log({
|
|
old: sortser(o),
|
|
new: sortser(n)
|
|
});
|
|
edits[k] = config[k];
|
|
}
|
|
if(!Object.keys(edits)
|
|
.length)
|
|
return mylog('package metadata already up to date');
|
|
|
|
mylog(`metadata edits: ${Object.keys(edits).sort().join(', ')}`);
|
|
if(config.dryrun)
|
|
return mylog('metadata edit DRY RUN ABORT');
|
|
|
|
mylog('updating package metadata...');
|
|
await cdbfetch(pkgurl, 'put', edits, { json: true });
|
|
mylog('package metadata updated');
|
|
};
|