cdbrelease/cdbedit.js

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');
};