@sap/cds
Version:
SAP Cloud Application Programming Model - CDS for Node.js
30 lines (26 loc) • 995 B
JavaScript
/* eslint-disable no-console */
const cds = require('../lib');
const argv = process.argv.slice(2);
const o = {};
cds.cli = { command: 'deploy', argv, options: o }
Promise.resolve(cds.plugins).then(async () => {
let db = cds.requires.db || {}
for (let i = 0; i < argv.length; ++i) {
let k = argv[i], v = argv[++i]
if (!k.startsWith('--')) return error `Invalid argument: ${k}. Expected format --key value`
if (v?.startsWith('--')) { --i; v = true } // allow --key without value
o[k = k.slice(2)] = v ?? true // allow last --key without value
if (k === 'to') db = { kind: v, dialect: v }
else (db.credentials ??= {})[k] = v
}
console.debug('Deploying with options:', db, o)
cds.db = await cds.connect.to(db)
return await cds.deploy('*',o).to(db)
})
.catch (e => { console.error(e); process.exitCode = 1 })
.finally (() => cds.db?.disconnect?.())
const error = (...args) => {
console.error (String.raw(...args))
process.exitCode = 1
}