From ac0714dcd79d23ef229855371f6b12ef8ec73adb Mon Sep 17 00:00:00 2001
From: Michael Shick <shick@google.com>
Date: Wed, 7 Jun 2017 07:46:59 -0700
Subject: [PATCH] add simplewallet --generate-new-wallet arg checks

Add fail-fast paths that reduce frustration around the misuse of
--wallet-file combined with --restore-deterministic-wallet.  Flow now
gives more descriptive errors and avoids having users type in their
whole seed before the failure condition is noticed.
---
 src/simplewallet/simplewallet.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index 87dbcf513..13dfcb6a4 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -929,6 +929,11 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
         fail_msg_writer() << tr("can't specify both --restore-deterministic-wallet and --non-deterministic");
         return false;
       }
+      if (!m_wallet_file.empty())
+      {
+        fail_msg_writer() << tr("--restore-deterministic-wallet uses --generate-new-wallet, not --wallet-file");
+        return false;
+      }
 
       if (m_electrum_seed.empty())
       {
@@ -1090,6 +1095,10 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
     }
     else
     {
+      if (m_generate_new.empty()) {
+        fail_msg_writer() << tr("specify a wallet path with --generate-new-wallet (not --wallet-file)");
+        return false;
+      }
       m_wallet_file = m_generate_new;
       bool r = new_wallet(vm, m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, old_language);
       CHECK_AND_ASSERT_MES(r, false, tr("account creation failed"));