UNPKG

@shencom/oss-upload

Version:
56 lines (46 loc) 1.78 kB
import { homedir } from 'os'; import fs from 'fs-extra'; import dotenv from 'dotenv'; import chalk from 'chalk'; import log from '@shencom/npmlog'; import boxen from 'boxen'; import { CheckEnvPath } from './utils'; const PROJECT_ENV_PATH = `${process.cwd()}/.env.oss.local`; const USER_HOME_SHENCOM = `${homedir()}/.shencom/oss_key`; function ParseEnv(envPath: string) { const path = CheckEnvPath(envPath); if (!path) { log.error('oss', '未找到对应的秘钥配置文件,请先配置秘钥'); TipLog(); process.exit(); } const secret = dotenv.parse(fs.readFileSync(path)); return secret; } function TipLog() { console.info( boxen( `1. 可以使用 ${chalk.magenta.bold('@shencom/cli')} 创建秘钥${chalk.red.bold('(推荐)')}\n\n` + `${chalk.gray('全局配置: ')}${chalk.gray.bold('$ npx @shencom/cli oss config')}\n\n` + `${chalk.gray('项目配置: ')}${chalk.gray.bold('$ npx @shencom/cli oss config -p')}\n\n` + `2. 在当前项目根目录创建 ${chalk.blue.bold('.env.oss.local')} 文件,并配置如下内容:\n\n` + `${chalk.gray('accessKeySecret=xxx')}\n${chalk.gray('accessKeyId=xxx')}\n\n` + `${chalk.red.bold('注意:')} 请勿把 ${chalk.blue.bold( '.env.oss.local', )} 文件提交到代码仓库中`, { padding: 1, margin: 1, title: '可以使用以下两种方式配置秘钥', borderColor: 'yellow', borderStyle: 'round', }, ), ); } function ParseAccessKeyEnv() { const envPath = CheckEnvPath(PROJECT_ENV_PATH) || CheckEnvPath(USER_HOME_SHENCOM); const { accessKeyId, accessKeySecret } = ParseEnv(envPath); return { accessKeyId, accessKeySecret }; } export { ParseAccessKeyEnv, TipLog };