fin
Version:
Developer CLI for Fin. Fin is the easiest way to launch your own SaaS.
46 lines (37 loc) • 1.2 kB
JavaScript
const clipboard = require('clipboardy')
const handleError = require('../handle-error')
const parseProject = require('../parse-project')
const spinner = require('../spinner')
const zipProject = require('../zip-project')
module.exports = (program, client) => {
program
.command('deploy [path]')
.description('Creates a new deployment')
.option('-f, --force', 'Force the creation of a new deployment', false)
.action(async (arg, opts) => {
if (arg) program.config = arg
program.requireAuthentication()
try {
const project = await parseProject(program)
if (program.debug) {
console.log(JSON.stringify(project, null, 2))
}
const zipBuffer = await zipProject(program, project)
const result = await spinner(
client.createDeployment({
...project,
force: opts.force,
data: zipBuffer.toString('base64')
}),
'Creating deployment'
)
if (program.clipboard) {
clipboard.writeSync(result.url)
}
console.log(JSON.stringify(result, null, 2))
} catch (err) {
handleError(err)
}
})
}