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

Function get_default_shell

resources/sshdconfig/src/get.rs:51–99  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

49
50#[cfg(windows)]
51fn get_default_shell() -> Result<(), SshdConfigError> {
52 let registry_helper = RegistryHelper::new(REGISTRY_PATH, Some(DEFAULT_SHELL.to_string()), None)?;
53 let default_shell: Registry = registry_helper.get()?;
54 let mut shell = None;
55 // default_shell is a single string consisting of the shell exe path
56 if let Some(value) = default_shell.value_data {
57 match value {
58 RegistryValueData::String(s) => {
59 shell = Some(s);
60 }
61 _ => return Err(SshdConfigError::InvalidInput(t!("get.defaultShellMustBeString").to_string())),
62 }
63 }
64
65 let registry_helper = RegistryHelper::new(REGISTRY_PATH, Some(DEFAULT_SHELL_CMD_OPTION.to_string()), None)?;
66 let option: Registry = registry_helper.get()?;
67 let mut cmd_option = None;
68 if let Some(value) = option.value_data {
69 match value {
70 RegistryValueData::String(s) => cmd_option = Some(s),
71 _ => return Err(SshdConfigError::InvalidInput(t!("get.defaultShellCmdOptionMustBeString").to_string())),
72 }
73 }
74
75 let registry_helper = RegistryHelper::new(REGISTRY_PATH, Some(DEFAULT_SHELL_ESCAPE_ARGS.to_string()), None)?;
76 let escape_args: Registry = registry_helper.get()?;
77 let mut escape_arguments = None;
78 if let Some(value) = escape_args.value_data {
79 if let RegistryValueData::DWord(b) = value {
80 if b == 0 || b == 1 {
81 escape_arguments = if b == 1 { Some(true) } else { Some(false) };
82 } else {
83 return Err(SshdConfigError::InvalidInput(t!("get.defaultShellEscapeArgsMustBe0Or1", input = b).to_string()));
84 }
85 } else {
86 return Err(SshdConfigError::InvalidInput(t!("get.defaultShellEscapeArgsMustBeDWord").to_string()));
87 }
88 }
89
90 let result = DefaultShell {
91 shell,
92 cmd_option,
93 escape_arguments
94 };
95
96 let output = serde_json::to_string(&result)?;
97 println!("{output}");
98 Ok(())
99}
100
101#[cfg(not(windows))]
102fn get_default_shell() -> Result<(), SshdConfigError> {

Callers 1

invoke_getFunction · 0.85

Calls 3

newFunction · 0.50
to_stringFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected