support_kit/service/
service_command.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use std::ffi::OsString;

use clap::Parser;
use serde::{Deserialize, Serialize};
use strum::{EnumString, VariantNames};

#[derive(Clone, Debug, Deserialize, Parser, EnumString, VariantNames, Serialize, PartialEq)]
#[clap(rename_all = "kebab-case")]
#[strum(serialize_all = "kebab-case")]
pub enum ServiceCommand {
    Install(InstallArgs),
    Uninstall,
    Start,
    Stop,
}

#[derive(Clone, Debug, Default, Deserialize, Parser, Serialize, PartialEq)]
#[clap(rename_all = "kebab-case")]
pub struct InstallArgs {
    #[clap(raw = true, required = false)]
    pub args: Vec<OsString>,
}

impl ServiceCommand {
    pub fn options() -> &'static [&'static str] {
        Self::VARIANTS
    }
}