index.js 1.33 KiB
Newer Older
// Copyright 2015-2019 Parity Technologies (UK) Ltd.
Amaury Martiny's avatar
Amaury Martiny committed
// This file is part of Parity.
//
Amaury Martiny's avatar
Amaury Martiny committed
// SPDX-License-Identifier: BSD-3-Clause
import cli from 'commander';
import { DEFAULT_CHAIN } from '../constants';
const { productName } = require('../../../../electron-builder.json');
const { version } = require('../../../../package.json');
Amaury Martiny's avatar
Amaury Martiny committed
/**
 * Process.argv arguments length is different in electron mode and in packaged
 * mode. This small line is to harmonize the behavior for consistent parsing.
 *
 * @see https://github.com/tj/commander.js/issues/512
 * @see https://github.com/electron/electron/issues/4690#issuecomment-217435222
 */
if (process.defaultApp !== true) {
Amaury Martiny's avatar
Amaury Martiny committed
  process.argv.unshift('');
cli
  .version(version)
  .option(
    '--chain <chain>',
    `The network to connect to, can be one of "foundation", "kovan" or "ropsten". (default: "${DEFAULT_CHAIN}")`,
    DEFAULT_CHAIN
Amaury Martiny's avatar
Amaury Martiny committed
  .option(
    '--ipc-path <path>',
    `${productName} will not attempt to run the bundled Parity Ethereum, and will connect to the specified IPC socket instead. All IPC APIs must be enabled.`
  // We want to ignore some flags that are sometimes passed to Fether, but not
  // officially recognized by Fether:
  // - -psn_*: https://github.com/paritytech/fether/issues/188
  .parse(process.argv.filter(arg => !arg.startsWith('-psn_')));
export default cli;