MCPcopy Create free account
hub / github.com/SeaQL/FireDBG.for.Rust / main

Function main

command/src/main.rs:151–431  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

149
150#[tokio::main]
151async fn main() -> Result<()> {
152 env_logger::init();
153
154 let Command {
155 workspace_root,
156 firedbg_home,
157 sub_command,
158 } = Command::from_args();
159
160 let workspace = &parse_workspace(&workspace_root)
161 .with_context(|| format!("Fail to parse metadata of workspace `{}`", workspace_root))?;
162
163 log::info!("cargo_workspace\n{:#?}", workspace);
164
165 check_firedbg_version_updated(workspace)
166 .await
167 .context("Fail to check FireDBG version updated")?;
168
169 match sub_command {
170 SubCommand::Cache {} => {
171 cache_workspace(workspace)
172 .await
173 .context("Fail to cache workspace")?;
174 }
175 SubCommand::Clean {} => {
176 remove_firedbg_dir(workspace)
177 .await
178 .context("Fail to remove FireDBG directory")?;
179 }
180 SubCommand::Run {
181 binary_name,
182 mut args,
183 config,
184 output,
185 } => {
186 let binary_names = workspace.binary_names();
187 if binary_names.is_empty() {
188 println!("No binary.");
189 exit(1);
190 }
191 let list = || {
192 println!("Available binaries are:");
193 println!("\t{}", binary_names.join("\n\t"));
194 exit(1);
195 };
196 let find_binary = |binary_name: &str| {
197 let Some((package, binary)) = workspace.find_binary(binary_name) else {
198 println!("Unknown binary `{binary_name}`.");
199 list()
200 };
201 (package, binary)
202 };
203 let (package, binary) = if let Some(binary_name) = binary_name {
204 find_binary(&binary_name)
205 } else if binary_names.len() == 1 {
206 find_binary(&binary_names[0])
207 } else {
208 list()

Callers

nothing calls this directly

Calls 15

cache_workspaceFunction · 0.85
remove_firedbg_dirFunction · 0.85
parse_firedbg_configFunction · 0.85
load_default_argvFunction · 0.85
parse_trace_configFunction · 0.85
run_binaryFunction · 0.85
run_testFunction · 0.85
run_unit_testFunction · 0.85
run_exampleFunction · 0.85
get_firedbg_runsFunction · 0.85
list_firedbg_runsFunction · 0.85

Tested by

no test coverage detected