mirror of https://github.com/certd/certd
52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
import os from 'os'
|
|
import fs from 'fs-extra'
|
|
import pathUtil from '../utils/util.path.js'
|
|
import cryptoRandomString from 'crypto-random-string'
|
|
import zipUtil from '../utils/util.zip.js'
|
|
import path from 'path'
|
|
|
|
import { createRequire } from 'module'
|
|
const require = createRequire(import.meta.url)
|
|
|
|
export default {
|
|
async exportsToZip (options, dirName) {
|
|
const tempDir = os.tmpdir()
|
|
const targetDir = path.join(tempDir, 'certd-server', cryptoRandomString(10))
|
|
const projectName = dirName
|
|
const targetProjectDir = path.join(targetDir, projectName)
|
|
const templateDir = pathUtil.join('templates/' + projectName)
|
|
|
|
console.log('targetDir', targetDir)
|
|
console.log('projectName', projectName)
|
|
console.log('tempalteDir', templateDir)
|
|
console.log('targetProjectDir', targetProjectDir)
|
|
fs.copySync(templateDir, targetProjectDir)
|
|
|
|
// options
|
|
const optionsFilePath = path.join(targetProjectDir, 'options.json')
|
|
fs.writeJsonSync(optionsFilePath, options)
|
|
|
|
// 依赖版本
|
|
const exePkgJson = fs.readFileSync('node_modules/@certd/executor/package.json')
|
|
const executorPkg = JSON.parse(exePkgJson)
|
|
const currentVersion = executorPkg.version
|
|
|
|
const templatePkg = require('../templates/certd-run/package.json')
|
|
templatePkg.dependencies['@certd/executor'] = '^' + currentVersion
|
|
const pkgFilePath = path.join(targetProjectDir, 'package.json')
|
|
fs.writeJsonSync(pkgFilePath, templatePkg)
|
|
|
|
const zipName = dirName + '.zip'
|
|
const outputFilePath = path.join(targetDir, zipName)
|
|
|
|
console.log('outputFilePath', outputFilePath)
|
|
await zipUtil.compress({ dir: targetProjectDir, output: outputFilePath })
|
|
return {
|
|
dir: targetDir,
|
|
fileName: zipName,
|
|
zipPath: outputFilePath
|
|
}
|
|
}
|
|
|
|
}
|