cashierd_cli.rs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. use crate::Result;
  2. use clap::{App, Arg};
  3. pub struct CashierdCli {
  4. pub verbose: bool,
  5. pub hello: bool,
  6. pub wallet: bool,
  7. pub info: bool,
  8. pub stop: bool,
  9. }
  10. impl CashierdCli {
  11. pub fn load() -> Result<Self> {
  12. let app = App::new("Cashier CLI")
  13. .version("0.1.0")
  14. .author("Dark Renaissance Technologies")
  15. .about("run service daemon")
  16. .arg(
  17. Arg::new("verbose")
  18. .short('v')
  19. .help_heading(Some("Increase verbosity"))
  20. .long("verbose")
  21. .takes_value(false),
  22. )
  23. .arg(
  24. Arg::new("hello")
  25. .long("hello")
  26. .help_heading(Some("Say hello"))
  27. .takes_value(false),
  28. )
  29. .arg(
  30. Arg::new("wallet")
  31. .short('w')
  32. .long("wallet")
  33. .help_heading(Some("Create a new wallet"))
  34. .takes_value(false),
  35. )
  36. .arg(
  37. Arg::new("info")
  38. .short('i')
  39. .long("info")
  40. .help_heading(Some("Request info from daemon"))
  41. .takes_value(false),
  42. )
  43. .arg(
  44. Arg::new("stop")
  45. .short('s')
  46. .long("stop")
  47. .help_heading(Some("Send a stop signal to the daemon"))
  48. .takes_value(false),
  49. )
  50. .get_matches();
  51. let verbose = app.is_present("verbose");
  52. let wallet = app.is_present("wallet");
  53. let info = app.is_present("info");
  54. let hello = app.is_present("hello");
  55. let stop = app.is_present("stop");
  56. Ok(Self {
  57. verbose,
  58. wallet,
  59. info,
  60. hello,
  61. stop,
  62. })
  63. }
  64. }