aboutsummaryrefslogtreecommitdiff
path: root/src/bitcoin-cli.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bitcoin-cli.cpp')
-rw-r--r--src/bitcoin-cli.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp
new file mode 100644
index 0000000000..aa6ce27c52
--- /dev/null
+++ b/src/bitcoin-cli.cpp
@@ -0,0 +1,71 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2009-2013 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#include "util.h"
+#include "init.h"
+#include "bitcoinrpc.h"
+#include "ui_interface.h" /* for _(...) */
+
+#include <boost/filesystem/operations.hpp>
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Start
+//
+static bool AppInitRPC(int argc, char* argv[])
+{
+ //
+ // Parameters
+ //
+ ParseParameters(argc, argv);
+ if (!boost::filesystem::is_directory(GetDataDir(false)))
+ {
+ fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str());
+ return false;
+ }
+ ReadConfigFile(mapArgs, mapMultiArgs);
+
+ if (argc<2 || mapArgs.count("-?") || mapArgs.count("--help"))
+ {
+ // First part of help message is specific to RPC client
+ std::string strUsage = _("Bitcoin RPC client version") + " " + FormatFullVersion() + "\n\n" +
+ _("Usage:") + "\n" +
+ " bitcoin-cli [options] <command> [params] " + _("Send command to Bitcoin server") + "\n" +
+ " bitcoin-cli [options] help " + _("List commands") + "\n" +
+ " bitcoin-cli [options] help <command> " + _("Get help for a command") + "\n";
+
+ strUsage += "\n" + HelpMessage(HMM_BITCOIN_CLI);
+
+ fprintf(stdout, "%s", strUsage.c_str());
+ return false;
+ }
+ return true;
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if(!AppInitRPC(argc, argv))
+ return 1;
+ }
+ catch (std::exception& e) {
+ PrintExceptionContinue(&e, "AppInitRPC()");
+ } catch (...) {
+ PrintExceptionContinue(NULL, "AppInitRPC()");
+ }
+
+ try
+ {
+ if(!CommandLineRPC(argc, argv))
+ return 1;
+ }
+ catch (std::exception& e) {
+ PrintExceptionContinue(&e, "CommandLineRPC()");
+ } catch (...) {
+ PrintExceptionContinue(NULL, "CommandLineRPC()");
+ }
+ return 0;
+}