github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-core-master/validator/src/main.rs (about)

     1  extern crate clap;
     2  extern crate cpython;
     3  #[macro_use]
     4  extern crate log;
     5  
     6  mod pylogger;
     7  mod server;
     8  
     9  use cpython::Python;
    10  use server::cli;
    11  
    12  use std::process;
    13  
    14  fn main() {
    15      let gil = Python::acquire_gil();
    16      let py = gil.python();
    17  
    18      let args = cli::parse_args();
    19  
    20      let verbosity: u64 = args.occurrences_of("verbose");
    21  
    22      pylogger::set_up_logger(verbosity, py);
    23  
    24      let pydict = cli::wrap_in_pydict(py, &args)
    25          .map_err(|err| err.print(py))
    26          .unwrap();
    27  
    28      let cli = match py.import("sawtooth_validator.server.cli") {
    29          Ok(module) => module,
    30          Err(err) => {
    31              pylogger::exception(py, "failed to load sawtooth_validator.server.cli", err);
    32              process::exit(1);
    33          }
    34      };
    35  
    36      if let Err(err) = cli.call(py, "main", (pydict,), None) {
    37          pylogger::exception(py, "error executing main", err);
    38          process::exit(1);
    39      }
    40  }