mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
feature(cloudcmd) convert to EcmaScriptModules
This commit is contained in:
parent
006344b58a
commit
b5be1f3933
3 changed files with 48 additions and 54 deletions
|
|
@ -1,25 +1,21 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
'use strict';
|
||||
|
||||
const Info = require('../package');
|
||||
const DIR_SERVER = '../server/';
|
||||
|
||||
const {promisify} = require('util');
|
||||
const tryToCatch = require('try-to-catch');
|
||||
import {createRequire} from 'module';
|
||||
import {promisify} from 'util';
|
||||
import tryToCatch from 'try-to-catch';
|
||||
import {createSimport} from 'simport';
|
||||
|
||||
const exit = require(DIR_SERVER + 'exit');
|
||||
const {
|
||||
createConfig,
|
||||
configPath,
|
||||
} = require(DIR_SERVER + 'config');
|
||||
import exit from '../server/exit.js';
|
||||
import {createConfig, configPath} from '../server/config.js';
|
||||
|
||||
const config = createConfig({
|
||||
configPath,
|
||||
});
|
||||
|
||||
const env = require(DIR_SERVER + 'env');
|
||||
const prefixer = require(DIR_SERVER + '/prefixer');
|
||||
import env from '../server/env.js';
|
||||
import prefixer from '../server/prefixer.js';
|
||||
|
||||
const choose = (a, b) => {
|
||||
if (a === undefined)
|
||||
|
|
@ -30,6 +26,11 @@ const choose = (a, b) => {
|
|||
|
||||
process.on('unhandledRejection', exit);
|
||||
|
||||
const simport = createSimport(import.meta.url);
|
||||
const require = createRequire(import.meta.url);
|
||||
|
||||
const Info = require('../package.json');
|
||||
|
||||
const {argv} = process;
|
||||
const args = require('minimist')(argv.slice(2), {
|
||||
string: [
|
||||
|
|
@ -186,7 +187,7 @@ async function main() {
|
|||
config('dropbox', args['dropbox']);
|
||||
config('dropboxToken', args['dropbox-token'] || '');
|
||||
|
||||
readConfig(args.config);
|
||||
await readConfig(args.config);
|
||||
|
||||
const options = {
|
||||
root: config('root'),
|
||||
|
|
@ -200,17 +201,17 @@ async function main() {
|
|||
const password = env('password') || args.password;
|
||||
|
||||
if (password)
|
||||
config('password', getPassword(password));
|
||||
config('password', await getPassword(password));
|
||||
|
||||
validateRoot(options.root, config);
|
||||
await validateRoot(options.root, config);
|
||||
|
||||
if (args['show-config'])
|
||||
showConfig();
|
||||
await showConfig();
|
||||
|
||||
const distribute = require('../server/distribute');
|
||||
const distribute = await simport('../server/distribute/index.js');
|
||||
const importConfig = promisify(distribute.import);
|
||||
|
||||
start(options, config);
|
||||
await start(options, config);
|
||||
|
||||
if (args.save)
|
||||
config.write();
|
||||
|
|
@ -219,8 +220,8 @@ async function main() {
|
|||
await importConfig(config);
|
||||
}
|
||||
|
||||
function validateRoot(root, config) {
|
||||
const validate = require(DIR_SERVER + 'validate');
|
||||
async function validateRoot(root, config) {
|
||||
const validate = await simport(DIR_SERVER + 'validate.js');
|
||||
validate.root(root, config);
|
||||
|
||||
if (root === '/')
|
||||
|
|
@ -229,8 +230,8 @@ function validateRoot(root, config) {
|
|||
console.log(`root: ${root}`);
|
||||
}
|
||||
|
||||
function getPassword(password) {
|
||||
const criton = require('criton');
|
||||
async function getPassword(password) {
|
||||
const criton = await import('criton');
|
||||
return criton(password, config('algo'));
|
||||
}
|
||||
|
||||
|
|
@ -238,13 +239,13 @@ function version() {
|
|||
console.log('v' + Info.version);
|
||||
}
|
||||
|
||||
function start(options, config) {
|
||||
const SERVER = DIR_SERVER + 'server';
|
||||
async function start(options, config) {
|
||||
const SERVER = DIR_SERVER + 'server.js';
|
||||
|
||||
if (!args.server)
|
||||
return;
|
||||
|
||||
const server = require(SERVER);
|
||||
const server = await simport(SERVER);
|
||||
server(options, config);
|
||||
}
|
||||
|
||||
|
|
@ -257,27 +258,21 @@ function port(arg) {
|
|||
exit('cloudcmd --port: should be a number');
|
||||
}
|
||||
|
||||
function showConfig() {
|
||||
const show = require('../server/show-config');
|
||||
async function showConfig() {
|
||||
const show = await simport('../server/show-config');
|
||||
const data = show(config('*'));
|
||||
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
function readConfig(name) {
|
||||
async function readConfig(name) {
|
||||
if (!name)
|
||||
return;
|
||||
|
||||
const fs = require('fs');
|
||||
const tryCatch = require('try-catch');
|
||||
const jju = require('jju');
|
||||
const forEachKey = require('for-each-key');
|
||||
const tryToCatch = await simport('try-to-catch');
|
||||
const forEachKey = await import('for-each-key');
|
||||
|
||||
const readjsonSync = (name) => jju.parse(fs.readFileSync(name, 'utf8'), {
|
||||
mode: 'json',
|
||||
});
|
||||
|
||||
const [error, data] = tryCatch(readjsonSync, name);
|
||||
const [error, data] = await tryToCatch(simport, name);
|
||||
|
||||
if (error)
|
||||
return exit(error.message);
|
||||
|
|
@ -285,10 +280,11 @@ function readConfig(name) {
|
|||
forEachKey(config, data);
|
||||
}
|
||||
|
||||
function help() {
|
||||
const bin = require('../json/help');
|
||||
const forEachKey = require('for-each-key');
|
||||
const currify = require('currify');
|
||||
async function help() {
|
||||
const bin = require('../json/help.json');
|
||||
const forEachKey = await simport('for-each-key');
|
||||
const currify = await simport('currify');
|
||||
|
||||
const usage = 'Usage: cloudcmd [options]';
|
||||
const url = Info.homepage;
|
||||
const log = currify((a, b, c) => console.log(a, b, c));
|
||||
|
|
@ -305,17 +301,17 @@ function repl() {
|
|||
}
|
||||
|
||||
async function checkUpdate() {
|
||||
const load = require('package-json');
|
||||
const load = await simport('package-json');
|
||||
|
||||
const {version} = await load(Info.name, 'latest');
|
||||
showUpdateInfo(version);
|
||||
await showUpdateInfo(version);
|
||||
}
|
||||
|
||||
function showUpdateInfo(version) {
|
||||
async function showUpdateInfo(version) {
|
||||
if (version === Info.version)
|
||||
return;
|
||||
|
||||
const chalk = require('chalk');
|
||||
const chalk = await simport('chalk');
|
||||
|
||||
const latestVersion = chalk.green.bold('v' + version);
|
||||
const latest = `update available: ${latestVersion}`;
|
||||
|
|
@ -1,14 +1,11 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
'use strict';
|
||||
import Info from '../package.js';
|
||||
|
||||
const DIR = '../';
|
||||
const Info = require(DIR + 'package');
|
||||
|
||||
const minor = require('minor');
|
||||
const place = require('place');
|
||||
const rendy = require('rendy');
|
||||
const shortdate = require('shortdate');
|
||||
import minor from 'minor';
|
||||
import place from 'place';
|
||||
import rendy from 'rendy';
|
||||
import shortdate from 'shortdate';
|
||||
|
||||
const ERROR = Error('ERROR: version is missing. release --patch|--minor|--major');
|
||||
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
"server"
|
||||
],
|
||||
"bin": {
|
||||
"cloudcmd": "bin/cloudcmd.js"
|
||||
"cloudcmd": "bin/cloudcmd.mjs"
|
||||
},
|
||||
"nyc": {
|
||||
"exclude": [
|
||||
|
|
@ -152,6 +152,7 @@
|
|||
"restafary": "^8.0.0",
|
||||
"restbox": "^2.0.0",
|
||||
"shortdate": "^2.0.0",
|
||||
"simport": "^1.0.1",
|
||||
"socket.io": "^3.0.1",
|
||||
"socket.io-client": "^3.0.1",
|
||||
"squad": "^3.0.0",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue