Skip to content
Snippets Groups Projects
Select Git revision
  • 703ffdbc52b1a5109b59fc56af099a6c760b0fc4
  • dev default protected
  • release/1.9.1 protected
  • pini-1.8-docker
  • pini-sync-onlypeers
  • duniter-v2s-issue-123-industrialize-releases
  • feature/build-aarch64-nodejs16
  • release/1.8 protected
  • pini-docker
  • ci_tags
  • fix/1448/1.8/txs_not_stored
  • feature/node-20
  • fix/1441/node_summary_with_storage
  • fix/1442/improve_bma_tx_history
  • feature/wotwizard-1.8
  • release/1.9 protected
  • 1.7 protected
  • feature/docker-set-latest protected
  • feature/fast-docker-build-1.8.4
  • fast-docker-build protected
  • feature/dump-distance
  • v1.8.7 protected
  • v1.8.7-rc4 protected
  • v1.8.7-rc3 protected
  • v1.8.7-rc2 protected
  • v1.8.7-rc1 protected
  • v1.8.6 protected
  • v1.7.23 protected
  • v1.8.5 protected
  • v1.8.4 protected
  • v1.8.3 protected
  • v1.8.2 protected
  • v1.8.1 protected
  • v1.8.0 protected
  • v1.8.0-rc1 protected
  • v1.8.0-beta5 protected
  • v1.8.0-beta4 protected
  • v1.8.0-beta3 protected
  • v1.8.0-beta2 protected
  • v1.8.0-beta protected
  • v1.7.21 protected
41 results

cli.ts

Blame
  • cli.ts 4.56 KiB
    // Source file from duniter: Crypto-currency software to manage libre currency such as Ğ1
    // Copyright (C) 2018  Cedric Moreau <cem.moreau@gmail.com>
    //
    // This program is free software: you can redistribute it and/or modify
    // it under the terms of the GNU Affero General Public License as published by
    // the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // This program is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU Affero General Public License for more details.
    
    const Command = require('commander').Command;
    const pjson = require('../package.json');
    const duniter = require('../index');
     
    export const ExecuteCommand = () => {
    
      const options:any = [];
      const commands:any = [];
    
      return {
    
        addOption: (optFormat:string, optDesc:string, optParser:any) => options.push({ optFormat, optDesc, optParser }),
    
        addCommand: (command:any, executionCallback:any) => commands.push({ command, executionCallback }),
    
        // To execute the provided command
        execute: async (programArgs:string[]) => {
    
          const program = new Command();
    
          // Callback for command success
          let onResolve:any;
    
          // Callback for command rejection
          let onReject:any = () => Promise.reject(Error("Uninitilized rejection throw"));
    
          // Command execution promise
          const currentCommand = new Promise((resolve, reject) => {
            onResolve = resolve;
            onReject = reject;
          });
    
          program
            .version(pjson.version)
            .usage('<command> [options]')
    
            .option('--home <path>', 'Path to Duniter HOME (defaults to "$HOME/.config/duniter").')
            .option('-d, --mdb <name>', 'Database name (defaults to "duniter_default").')
    
            .option('--autoconf', 'With `config` and `init` commands, will guess the best network and key options witout asking for confirmation')
            .option('--addep <endpoint>', 'With `config` command, add given endpoint to the list of endpoints of this node')
            .option('--remep <endpoint>', 'With `config` command, remove given endpoint to the list of endpoints of this node')
    
            .option('--cpu <percent>', 'Percent of CPU usage for proof-of-work computation', parsePercent)
            .option('--nb-cores <number>', 'Number of cores uses for proof-of-work computation', parseInt)
            .option('--prefix <nodeId>', 'Prefix node id for the first character of nonce', parseInt)
    
            .option('-c, --currency <name>', 'Name of the currency managed by this node.')
    
            .option('--nostdout', 'Disable stdout printing for `export-bc` command')
            .option('--noshuffle', 'Disable peers shuffling for `sync` command')
    
            .option('--socks-proxy <host:port>', 'Use Socks Proxy')
            .option('--tor-proxy <host:port>', 'Use Tor Socks Proxy')
            .option('--reaching-clear-ep <clear|tor|none>', 'method for reaching an clear endpoint')
            .option('--force-tor', 'force duniter to contact endpoint tor (if you redirect the traffic to tor yourself)')
            .option('--rm-proxies', 'Remove all proxies')