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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use serde::{Deserialize, Serialize};
use structopt::StructOpt;

use support_terminal::output::OutputFormat;

#[derive(
    Clone, Debug, Deserialize, Eq, PartialEq, Serialize, strum::EnumString, strum::EnumVariantNames,
)]
#[strum(serialize_all = "kebab_case")]
pub enum RegistryType {
    Local,
    Github,
    Server,
}

/// Registry option
#[derive(Clone, Debug, Deserialize, Serialize, StructOpt)]
pub enum RegistryOpt {
    /// Set registry
    Set {
        /// Registry type, support local|github|server
        #[structopt(long = "type", default_value = "github")]
        type_: RegistryType,
        /// The path of registry
        #[structopt(long)]
        path: Option<String>,
    },
    /// Get current registry
    Get {
        /// The output format
        #[structopt(short, long, default_value = "raw")]
        output: OutputFormat,
    },
    /// Set registry version, will be download by your set value
    Version {
        /// The version
        #[structopt()]
        value: Option<String>,
        /// Set version to bridger bundle, if true, not use the value parameter
        #[structopt(long)]
        bundle: bool,
    },
}