mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-06 17:59:11 +00:00
bd8f01fb26
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
68 lines
1.4 KiB
Rust
68 lines
1.4 KiB
Rust
#![allow(dead_code)]
|
|
|
|
use std::io;
|
|
|
|
use clap::Command;
|
|
use clap_complete::{Generator, Shell};
|
|
|
|
mod arch;
|
|
mod gateway;
|
|
pub mod instance;
|
|
mod peer_center;
|
|
mod vpn_portal;
|
|
|
|
pub mod common;
|
|
pub mod connector;
|
|
pub mod core;
|
|
pub mod instance_manager;
|
|
pub mod launcher;
|
|
pub mod peers;
|
|
pub mod proto;
|
|
pub mod rpc_service;
|
|
pub mod service_manager;
|
|
pub mod tunnel;
|
|
pub mod utils;
|
|
pub mod web_client;
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|
|
|
|
pub const VERSION: &str = common::constants::EASYTIER_VERSION;
|
|
rust_i18n::i18n!("locales", fallback = "en");
|
|
|
|
#[derive(clap::ValueEnum, Debug, Clone, PartialEq)]
|
|
pub enum ShellType {
|
|
Bash,
|
|
Elvish,
|
|
Fish,
|
|
Powershell,
|
|
Zsh,
|
|
Nu,
|
|
}
|
|
|
|
impl ShellType {
|
|
pub fn to_shell(&self) -> Option<Shell> {
|
|
match self {
|
|
ShellType::Bash => Some(Shell::Bash),
|
|
ShellType::Elvish => Some(Shell::Elvish),
|
|
ShellType::Fish => Some(Shell::Fish),
|
|
ShellType::Powershell => Some(Shell::PowerShell),
|
|
ShellType::Zsh => Some(Shell::Zsh),
|
|
ShellType::Nu => None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub fn print_completions<G: Generator>(generator: G, cmd: &mut Command, bin_name: &str) {
|
|
clap_complete::generate(generator, cmd, bin_name, &mut io::stdout());
|
|
}
|
|
|
|
pub fn print_nushell_completions(cmd: &mut Command, bin_name: &str) {
|
|
clap_complete::generate(
|
|
clap_complete_nushell::Nushell,
|
|
cmd,
|
|
bin_name,
|
|
&mut io::stdout(),
|
|
);
|
|
}
|