Execute a parsed subcommand. Returns process exit code.
(cmd: Subcommand)
| 152 | |
| 153 | /// Execute a parsed subcommand. Returns process exit code. |
| 154 | pub fn run_subcommand(cmd: Subcommand) -> i32 { |
| 155 | match cmd { |
| 156 | Subcommand::RegenCerts { data_dir, node_id } => { |
| 157 | match regen_certs::run(&data_dir, node_id) { |
| 158 | Ok(()) => 0, |
| 159 | Err(e) => { |
| 160 | eprintln!("error: {e}"); |
| 161 | 1 |
| 162 | } |
| 163 | } |
| 164 | } |
| 165 | Subcommand::RotateCaStage { data_dir } => match rotate_ca::stage(&data_dir) { |
| 166 | Ok(()) => 0, |
| 167 | Err(e) => { |
| 168 | eprintln!("error: {e}"); |
| 169 | 1 |
| 170 | } |
| 171 | }, |
| 172 | Subcommand::RotateCaFinalize { remove_fingerprint } => { |
| 173 | match rotate_ca::finalize(&remove_fingerprint) { |
| 174 | Ok(()) => 0, |
| 175 | Err(e) => { |
| 176 | eprintln!("error: {e}"); |
| 177 | 1 |
| 178 | } |
| 179 | } |
| 180 | } |
| 181 | Subcommand::JoinTokenCreate { |
| 182 | data_dir, |
| 183 | for_node, |
| 184 | ttl, |
| 185 | } => match join_token::create(&data_dir, for_node, ttl) { |
| 186 | Ok(()) => 0, |
| 187 | Err(e) => { |
| 188 | eprintln!("error: {e}"); |
| 189 | 1 |
| 190 | } |
| 191 | }, |
| 192 | Subcommand::Healthcheck { port } => healthcheck::run(port), |
| 193 | Subcommand::PrintVersion => { |
| 194 | print!("{}", format_version_block()); |
| 195 | 0 |
| 196 | } |
| 197 | Subcommand::NotImplemented { name } => { |
| 198 | let desc = stub_description(&name); |
| 199 | eprintln!("error: {desc} not yet implemented"); |
| 200 | 1 |
| 201 | } |
| 202 | } |
| 203 | } |
| 204 | |
| 205 | /// Returns the enriched version block printed by `--version` / `-V` / `version`. |
| 206 | /// |