MCPcopy Create free account
hub / github.com/AmrDeveloper/GQL / main

Function main

src/main.rs:30–87  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

28mod gitql;
29
30fn main() {
31 if cfg!(debug_assertions) {
32 unsafe {
33 std::env::set_var("RUST_BACKTRACE", "full");
34 std::env::set_var("RUST_LIB_BACKTRACE", "1");
35 };
36 }
37
38 let args: Vec<String> = std::env::args().collect();
39 let command = arguments::parse_arguments(&args);
40
41 match command {
42 Command::ReplMode(arguments) => {
43 launch_gitql_repl(&arguments);
44 }
45 Command::ScriptMode(script_file, arguments) => {
46 let mut reporter = diagnostic_reporter::DiagnosticReporter::default();
47 let git_repos_result = validate_git_repositories(&arguments.repos);
48 if git_repos_result.is_err() {
49 reporter.report_diagnostic(
50 "",
51 Diagnostic::error(git_repos_result.err().unwrap().as_str()),
52 );
53 std::process::exit(1);
54 }
55
56 let repos = git_repos_result.ok().unwrap();
57 let mut env = create_gitql_environment();
58 let query =
59 fs::read_to_string(script_file).expect("Should have been able to read the file");
60 execute_gitql_query(&query, &arguments, &repos, &mut env, &mut reporter);
61 }
62 Command::QueryMode(query, arguments) => {
63 let mut reporter = diagnostic_reporter::DiagnosticReporter::default();
64 let git_repos_result = validate_git_repositories(&arguments.repos);
65 if git_repos_result.is_err() {
66 reporter.report_diagnostic(
67 &query,
68 Diagnostic::error(git_repos_result.err().unwrap().as_str()),
69 );
70 std::process::exit(1);
71 }
72
73 let repos = git_repos_result.ok().unwrap();
74 let mut env = create_gitql_environment();
75 execute_gitql_query(&query, &arguments, &repos, &mut env, &mut reporter);
76 }
77 Command::Help => {
78 arguments::print_help_list();
79 }
80 Command::Version => {
81 println!("GitQL version {}", env!("CARGO_PKG_VERSION"));
82 }
83 Command::Error(error_message) => {
84 println!("{error_message}");
85 }
86 }
87}

Callers

nothing calls this directly

Calls 7

parse_argumentsFunction · 0.85
launch_gitql_replFunction · 0.85
create_gitql_environmentFunction · 0.85
execute_gitql_queryFunction · 0.85
print_help_listFunction · 0.85
report_diagnosticMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…