@oceans/cli
Version:
work for oceans
61 lines (48 loc) • 1.54 kB
JavaScript
const fs = require('fs')
const path = require('path')
const util = require('util')
const compressing = require('compressing')
const readFile = util.promisify(fs.readFile)
const { auth } = require('../common/api')
const Account = require('../model/account')
module.exports = async () => {
const projectPath = process.cwd()
const packageJson = path.join(projectPath, 'package.json')
if (!fs.existsSync(packageJson)) {
console.log('package.json is not exist')
return false
}
let packageJsonContent = await readFile(packageJson)
packageJsonContent = JSON.parse(packageJsonContent)
const version = packageJsonContent.version
if (!version) {
console.log('package.json version field is not exist')
return false
}
const buildDirPath = path.join(projectPath, 'build')
if (!fs.existsSync(buildDirPath)) {
console.log('build folder is not exist. run `npm run build` first')
return false
}
const releasePath = path.join(projectPath, '.release')
if (!fs.existsSync(releasePath)) {
fs.mkdirSync(releasePath)
}
const zipPath = path.join(releasePath, version + '.zip')
if (fs.existsSync(zipPath)) {
fs.unlinkSync(zipPath)
}
try {
await compressing.zip.compressDir(buildDirPath, zipPath)
const account = new Account()
const doc = account.findTheLastActiveAccount()
if (!doc) {
console.log('token is invalid, login please')
return false
}
console.log('verif')
await auth(doc.token)
} catch (e) {
console.log('error ==>', e)
}
}