diff options
author | Eliot Horowitz <eliot@10gen.com> | 2009-10-09 22:11:15 -0400 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2009-10-09 22:11:15 -0400 |
commit | 8a6dfdc9e967dca275720391dfa297087d4337c0 (patch) | |
tree | 5086a873802b0f37b9ed3a4c20257a666a3219f3 /tools | |
parent | 6e67c98509d80d88859a23548205d09a6d7d9b4a (diff) | |
download | mongo-8a6dfdc9e967dca275720391dfa297087d4337c0.tar.gz |
cleaning tool debugging/tests
Diffstat (limited to 'tools')
-rw-r--r-- | tools/dump.cpp | 2 | ||||
-rw-r--r-- | tools/export.cpp | 23 |
2 files changed, 21 insertions, 4 deletions
diff --git a/tools/dump.cpp b/tools/dump.cpp index ff354f725e4..c67b6b1fd33 100644 --- a/tools/dump.cpp +++ b/tools/dump.cpp @@ -38,7 +38,7 @@ public: cout << "\t" << coll << " to " << outputFile.string() << endl; ofstream out; - out.open( outputFile.string().c_str() ); + out.open( outputFile.string().c_str() , ios_base::out | ios_base::binary ); uassert( "couldn't open file" , out.good() ); ProgressMeter m( conn( true ).count( coll.c_str() ) ); diff --git a/tools/export.cpp b/tools/export.cpp index f142cefecb4..16b1cd8baa3 100644 --- a/tools/export.cpp +++ b/tools/export.cpp @@ -47,8 +47,21 @@ public: const bool csv = hasParam( "csv" ); ostream *outPtr = &cout; string outfile = getParam( "out" ); - if ( hasParam( "out" ) ) - outPtr = new ofstream( outfile.c_str() ); + auto_ptr<ofstream> fileStream; + if ( hasParam( "out" ) ){ + size_t idx = outfile.rfind( "/" ); + if ( idx != string::npos ){ + string dir = outfile.substr( 0 , idx + 1 ); + create_directories( dir ); + } + ofstream * s = new ofstream( outfile.c_str() , ios_base::out | ios_base::binary ); + fileStream.reset( s ); + outPtr = s; + if ( ! s->good() ){ + cerr << "couldn't open [" << outfile << "]" << endl; + return -1; + } + } ostream &out = *outPtr; BSONObj * fieldsToReturn = 0; @@ -85,8 +98,10 @@ public: } out << endl; } - + + long long num = 0; while ( cursor->more() ) { + num++; BSONObj obj = cursor->next(); if ( csv ){ for ( vector<string>::iterator i=_fields.begin(); i != _fields.end(); i++ ){ @@ -104,6 +119,8 @@ public: } } + + cout << "exported " << num << " records" << endl; return 0; } |