support_kit/service/
service_command.rs

1use std::ffi::OsString;
2
3use clap::Parser;
4use serde::{Deserialize, Serialize};
5use strum::{EnumString, VariantNames};
6
7#[derive(Clone, Debug, Deserialize, Parser, EnumString, VariantNames, Serialize, PartialEq)]
8#[clap(rename_all = "kebab-case")]
9#[strum(serialize_all = "kebab-case")]
10pub enum ServiceCommand {
11    Install(InstallArgs),
12    Uninstall,
13    Start,
14    Stop,
15}
16
17#[derive(Clone, Debug, Default, Deserialize, Parser, Serialize, PartialEq)]
18#[clap(rename_all = "kebab-case")]
19pub struct InstallArgs {
20    #[clap(raw = true, required = false)]
21    pub args: Vec<OsString>,
22}
23
24impl ServiceCommand {
25    pub fn options() -> &'static [&'static str] {
26        Self::VARIANTS
27    }
28}