MCPcopy Create free account
hub / github.com/PowerShell/DSC / main

Function main

resources/runcommandonset/src/main.rs:19–85  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

17i18n!("locales", fallback = "en-us");
18
19fn main() {
20 let args = Arguments::parse();
21 let trace_level = match args.trace_level {
22 Some(trace_level) => trace_level,
23 None => {
24 // get from DSC_TRACE_LEVEL env var
25 if let Ok(trace_level) = std::env::var("DSC_TRACE_LEVEL") {
26 match trace_level.to_lowercase().as_str() {
27 "error" => TraceLevel::Error,
28 "warn" => TraceLevel::Warn,
29 "info" => TraceLevel::Info,
30 "debug" => TraceLevel::Debug,
31 "trace" => TraceLevel::Trace,
32 _ => {
33 warn!("{}: {trace_level}", t!("main.invalidTraceLevel"));
34 TraceLevel::Info
35 }
36 }
37 } else {
38 // default to info
39 TraceLevel::Info
40 }
41 }
42 };
43 enable_tracing(&trace_level, &args.trace_format);
44 warn!("{}", t!("main.notIdempotent"));
45
46 let stdin = if std::io::stdin().is_terminal() {
47 None
48 } else {
49 debug!("{}", t!("main.readStdin"));
50 let mut buffer: Vec<u8> = Vec::new();
51 io::stdin().read_to_end(&mut buffer).unwrap();
52 let stdin = match String::from_utf8(buffer) {
53 Ok(stdin) => stdin,
54 Err(e) => {
55 error!("{}: {e}", t!("main.invalidUtf8"));
56 exit(EXIT_INVALID_ARGS);
57 },
58 };
59 // parse_input expects at most 1 input, so wrapping Some(empty input) would throw it off
60 if stdin.is_empty() {
61 debug!("{}", t!("main.emptyStdin"));
62 None
63 }
64 else {
65 Some(stdin)
66 }
67 };
68
69 let mut command: RunCommand;
70
71 match args.subcommand {
72 SubCommand::Get { arguments, executable, exit_code } => {
73 command = parse_input(arguments, executable, exit_code, stdin);
74 }
75 SubCommand::Set { arguments, executable, exit_code } => {
76 command = parse_input(arguments, executable, exit_code, stdin);

Callers

nothing calls this directly

Calls 8

parse_inputFunction · 0.85
as_strMethod · 0.80
enable_tracingFunction · 0.70
invoke_commandFunction · 0.70
parseFunction · 0.50
newFunction · 0.50
is_emptyMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected