Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate default.db-options file if it not exist #4700

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions ckb-bin/src/subcommand/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@ use ckb_async_runtime::{new_global_runtime, Handle};
use ckb_build_info::Version;
use ckb_launcher::Launcher;
use ckb_logger::info;
use ckb_logger::warn;
use ckb_resource::{Resource, TemplateContext};

use ckb_stop_handler::{broadcast_exit_signals, wait_all_ckb_services_exit};

use ckb_types::core::cell::setup_system_cell_cache;

pub fn run(args: RunArgs, version: Version, async_handle: Handle) -> Result<(), ExitCode> {
check_default_db_options_exists(&args)?;
deadlock_detection();

let rpc_threads_num = calc_rpc_threads_num(&args);
Expand Down Expand Up @@ -79,3 +82,24 @@ fn calc_rpc_threads_num(args: &RunArgs) -> usize {
let default_num = usize::max(system_parallelism, 1);
args.config.rpc.threads.unwrap_or(default_num)
}

fn check_default_db_options_exists(args: &RunArgs) -> Result<(), ExitCode> {
// check is there a default.db-options file exist in args.config.root_dir, if not, create one.
let db_options_path = args.config.root_dir.join("default.db-options");

// Check if the default.db-options file exists, if not, create one.
if !db_options_path.exists() {
warn!(
"default.db-options file does not exist in {}, creating one.",
args.config.root_dir.display()
);
// context_for_db_options is used to generate a default default.db-options file.
let context_for_db_options = TemplateContext::new("", vec![]);

// Attempt to export the bundled DB options to the specified path.
Resource::bundled_db_options()
.export(&context_for_db_options, &args.config.root_dir)
.map_err(|_| ExitCode::Config)?;
}
Ok(())
}
Loading