Select Git revision
-
Cédric Moreau authoredCédric Moreau authored
index.ts 16.47 KiB
import {ExecuteCommand} from "./app/cli"
import * as stream from "stream"
import {Server} from "./server"
import {ConfDTO} from "./app/lib/dto/ConfDTO"
const path = require('path');
const _ = require('underscore');
const directory = require('./app/lib/system/directory');
const constants = require('./app/lib/constants');
const logger = require('./app/lib/logger').NewLogger('duniter');
const configDependency = require('./app/modules/config');
const wizardDependency = require('./app/modules/wizard');
const resetDependency = require('./app/modules/reset');
const checkConfDependency = require('./app/modules/check-config');
const exportBcDependency = require('./app/modules/export-bc');
const reapplyDependency = require('./app/modules/reapply');
const revertDependency = require('./app/modules/revert');
const daemonDependency = require('./app/modules/daemon');
const pSignalDependency = require('./app/modules/peersignal');
const routerDependency = require('./app/modules/router');
const pluginDependency = require('./app/modules/plugin');
const proverDependency = require('./app/modules/prover').ProverDependency;
class Stacks {
static todoOnRunDone:() => any = () => process.exit()
static async quickRun(...args:any[]) {
const deps = Array.from(args).map((f, index) => {
const canonicalPath = path.resolve(f)
return {
name: 'duniter-quick-module-' + index,
required: require(canonicalPath)
}
})
const stack = Stacks.autoStack(deps)
let res
try {
res = await stack.executeStack(Stacks.quickRunGetArgs())
} catch(e) {
console.error(e)
}
Stacks.onRunDone()
return res
}
static quickRunGetArgs() {
return process.argv.slice()
}
static onRunDone() {
return Stacks.todoOnRunDone()
}
static autoStack(priorityModules:any) {
const duniterModules = [];
let duniterDeps:any = []
try {
const pjson = require(path.resolve('./package.json'))
// Look for compliant packages
const prodDeps = Object.keys(pjson.dependencies || {});
const devDeps = Object.keys(pjson.devDependencies || {});
duniterDeps = prodDeps.concat(devDeps)
} catch (e) { /* duniter as a dependency might not be run from an NPM project */ }
for(const dep of duniterDeps) {
try {