osquery-1/osquery/main/shell.cpp

42 lines
1.3 KiB
C++
Raw Normal View History

/*
* Copyright (c) 2014, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#include <boost/filesystem.hpp>
#include <osquery/core.h>
#include <osquery/database.h>
#include <osquery/devtools.h>
2015-02-04 03:55:16 +00:00
#include <osquery/extensions.h>
#include <osquery/filesystem.h>
#include <osquery/logger.h>
2014-07-31 00:35:19 +00:00
const std::string kShellTemp = "/tmp/osquery";
2014-07-31 00:35:19 +00:00
int main(int argc, char *argv[]) {
// The shell is transient, rewrite config-loaded paths.
if (osquery::pathExists(kShellTemp).ok() ||
boost::filesystem::create_directory(kShellTemp)) {
2015-03-03 23:03:14 +00:00
osquery::FLAGS_database_path = kShellTemp + "/shell.db";
osquery::FLAGS_extensions_socket = kShellTemp + "/shell.em";
osquery::FLAGS_disable_logging = true;
}
2015-02-03 05:21:36 +00:00
// Parse/apply flags, start registry, load logger/config plugins.
2015-03-03 23:03:14 +00:00
osquery::Initializer runner(argc, argv, osquery::OSQUERY_TOOL_SHELL);
runner.start();
2015-02-03 05:21:36 +00:00
// Virtual tables will be attached to the shell's in-memory SQLite DB.
int retcode = osquery::launchIntoShell(argc, argv);
// Finally shutdown.
2015-03-03 23:03:14 +00:00
runner.shutdown();
return retcode;
2014-07-31 00:35:19 +00:00
}