Skip to content

Commit c2a9174

Browse files
SamChou19815meta-codesync[bot]
authored andcommitted
[flow][oxidation] Fix toplevel command port wrt to options
Summary: Changelog: [internal] Reviewed By: marcoww6 Differential Revision: D98753462 fbshipit-source-id: 76901ebf52f8a112bda74e653d0650ecf9a14733
1 parent a12652e commit c2a9174

File tree

4 files changed

+55
-9
lines changed

4 files changed

+55
-9
lines changed

rust_port/crates/flow_cli/src/check_commands.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use std::sync::Arc;
1010

1111
use dupe::Dupe;
1212
use flow_common::options::Options;
13+
use flow_common::options::SavedStateFetcher;
1314
use flow_common::verbose::Verbose;
1415
use flow_common_errors::error_utils::ConcreteLocPrintableErrorSet;
1516
use flow_common_errors::error_utils::cli_output;
@@ -85,8 +86,23 @@ fn error_flags(options: &Options, show_all_errors: bool) -> cli_output::ErrorFla
8586
}
8687
}
8788

89+
fn foreground_check_overrides(disable_saved_state: bool) -> command_utils::MakeOptionsOverrides {
90+
let mut overrides = command_utils::MakeOptionsOverrides {
91+
autoimports: Some(false),
92+
lazy_mode: Some(false),
93+
..Default::default()
94+
};
95+
if disable_saved_state {
96+
overrides.saved_state_fetcher = Some(SavedStateFetcher::DummyFetcher);
97+
overrides.saved_state_force_recheck = Some(false);
98+
overrides.saved_state_no_fallback = Some(false);
99+
overrides.saved_state_skip_version_check = Some(false);
100+
overrides.saved_state_verify = Some(false);
101+
}
102+
overrides
103+
}
104+
88105
fn run_check(force_full_check: bool, args: &command_spec::Values) {
89-
let _force_full_check = force_full_check;
90106
let flowconfig_name = command_spec::get(
91107
args,
92108
"--flowconfig-name",
@@ -118,6 +134,7 @@ fn run_check(force_full_check: bool, args: &command_spec::Values) {
118134
ignore_version,
119135
&root,
120136
&flowconfig_name,
137+
foreground_check_overrides(force_full_check),
121138
);
122139
if strip_root {
123140
Arc::make_mut(&mut options).strip_root = true;
@@ -203,6 +220,7 @@ fn run_focus_check(args: &command_spec::Values) {
203220
ignore_version,
204221
&root,
205222
&flowconfig_name,
223+
foreground_check_overrides(false),
206224
);
207225
if strip_root {
208226
Arc::make_mut(&mut options).strip_root = true;

rust_port/crates/flow_cli/src/command_utils.rs

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use flow_common::options::Format;
1818
use flow_common::options::GcControl;
1919
use flow_common::options::LogSaving;
2020
use flow_common::options::Options;
21+
use flow_common::options::SavedStateFetcher;
2122
use flow_common::path_matcher::PathMatcher;
2223
use flow_common_exit_status::FlowExitStatus;
2324
use flow_data_structure_wrapper::smol_str::FlowSmolStr;
@@ -72,13 +73,25 @@ fn make_includes(
7273
matcher
7374
}
7475

76+
#[derive(Clone, Copy, Debug, Default)]
77+
pub(crate) struct MakeOptionsOverrides {
78+
pub(crate) autoimports: Option<bool>,
79+
pub(crate) lazy_mode: Option<bool>,
80+
pub(crate) saved_state_fetcher: Option<SavedStateFetcher>,
81+
pub(crate) saved_state_force_recheck: Option<bool>,
82+
pub(crate) saved_state_no_fallback: Option<bool>,
83+
pub(crate) saved_state_skip_version_check: Option<bool>,
84+
pub(crate) saved_state_verify: Option<bool>,
85+
}
86+
7587
pub(super) fn make_options(
7688
flowconfig: FlowConfig,
7789
flowconfig_hash: String,
7890
flowconfig_name: String,
7991
root: std::path::PathBuf,
8092
temp_dir: String,
8193
cli_no_flowlib: bool,
94+
overrides: MakeOptionsOverrides,
8295
) -> Options {
8396
let FlowConfig {
8497
rollouts,
@@ -217,8 +230,18 @@ pub(super) fn make_options(
217230
version: _version,
218231
} = flowconfig;
219232

233+
let MakeOptionsOverrides {
234+
autoimports: autoimports_override,
235+
lazy_mode: lazy_mode_override,
236+
saved_state_fetcher: saved_state_fetcher_override,
237+
saved_state_force_recheck,
238+
saved_state_no_fallback,
239+
saved_state_skip_version_check: saved_state_skip_version_check_override,
240+
saved_state_verify,
241+
} = overrides;
242+
220243
let all = all.unwrap_or(false);
221-
let autoimports = autoimports.unwrap_or(true);
244+
let autoimports = autoimports_override.unwrap_or(autoimports.unwrap_or(true));
222245
let autoimports_min_characters = autoimports_min_characters.unwrap_or(0) as i32;
223246
let autoimports_ranked_by_usage_boost_exact_match_min_length =
224247
autoimports_ranked_by_usage_boost_exact_match_min_length as i32;
@@ -238,10 +261,10 @@ pub(super) fn make_options(
238261
let enable_records = records.unwrap_or(false);
239262
let estimate_recheck_time = estimate_recheck_time.unwrap_or(true);
240263
let exact_by_default = exact_by_default.unwrap_or(true);
241-
let lazy_mode = matches!(
264+
let lazy_mode = lazy_mode_override.unwrap_or(matches!(
242265
lazy_mode,
243266
Some(LazyMode::Lazy) | Some(LazyMode::WatchmanDeprecated)
244-
);
267+
));
245268
let max_files_checked_per_worker =
246269
max_files_checked_per_worker_rust_port.unwrap_or(max_files_checked_per_worker) as i32;
247270
let max_header_tokens = max_header_tokens as i32;
@@ -609,11 +632,12 @@ pub(super) fn make_options(
609632
relay_integration_module_prefix_includes,
610633
root: Arc::new(root),
611634
root_name: root_name.map(FlowSmolStr::new),
612-
saved_state_fetcher,
613-
saved_state_force_recheck: false, // Not in flowconfig, set to false
614-
saved_state_no_fallback: false, // Not in flowconfig, set to false
615-
saved_state_skip_version_check,
616-
saved_state_verify: false, // Not in flowconfig, set to false
635+
saved_state_fetcher: saved_state_fetcher_override.unwrap_or(saved_state_fetcher),
636+
saved_state_force_recheck: saved_state_force_recheck.unwrap_or(false),
637+
saved_state_no_fallback: saved_state_no_fallback.unwrap_or(false),
638+
saved_state_skip_version_check: saved_state_skip_version_check_override.unwrap_or(false)
639+
|| saved_state_skip_version_check,
640+
saved_state_verify: saved_state_verify.unwrap_or(false),
617641
slow_to_check_logging: Default::default(), // Not in flowconfig, use default
618642
strict_es6_import_export,
619643
strict_mode,

rust_port/crates/flow_cli/src/ls_command.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ fn main_impl(args: &command_spec::Values) {
335335
root.clone(),
336336
std::env::var("FLOW_TEMP_DIR").unwrap_or_else(|_| "/tmp/flow".to_owned()),
337337
true, // no_flowlib for ls command
338+
crate::command_utils::MakeOptionsOverrides::default(),
338339
);
339340
let options = Arc::new(options);
340341

rust_port/crates/flow_cli/src/main.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub(crate) fn get_options(cli_no_flowlib: bool, ignore_version: bool) -> Arc<Opt
8888
ignore_version,
8989
Path::new("."),
9090
".flowconfig",
91+
command_utils::MakeOptionsOverrides::default(),
9192
)
9293
}
9394

@@ -96,6 +97,7 @@ pub(crate) fn get_options_with_root_and_flowconfig_name(
9697
ignore_version: bool,
9798
root: &Path,
9899
flowconfig_name: &str,
100+
overrides: command_utils::MakeOptionsOverrides,
99101
) -> Arc<Options> {
100102
let flowconfig_path = root.join(flowconfig_name);
101103
let flowconfig_path_str = flowconfig_path.to_string_lossy();
@@ -132,6 +134,7 @@ pub(crate) fn get_options_with_root_and_flowconfig_name(
132134
root,
133135
std::env::var("FLOW_TEMP_DIR").unwrap_or_else(|_| "/tmp/flow".to_owned()),
134136
cli_no_flowlib,
137+
overrides,
135138
);
136139
Arc::new(options)
137140
}

0 commit comments

Comments
 (0)