phpup/commands/
default.rs

1use super::{Command, Config};
2use crate::version;
3use clap;
4use thiserror::Error;
5
6#[derive(clap::Parser, Debug)]
7pub struct Default {
8    link_version: Option<version::Local>,
9}
10
11#[derive(Error, Debug)]
12pub enum Error {
13    #[error(transparent)]
14    FailedCreateAlias(#[from] super::alias::Error),
15}
16
17impl Command for Default {
18    type Error = Error;
19
20    fn run(&self, config: &Config) -> Result<(), Error> {
21        let alias = crate::version::Alias::default();
22        if let Some(link_version) = self.link_version {
23            let cmd = super::Alias {
24                alias,
25                link_version,
26            };
27            cmd.run(config).map_err(Into::into)
28        } else {
29            match alias.resolve(config.aliases_dir()) {
30                Ok(version) => println!("{}", version),
31                Err(_) => println!("none"),
32            }
33            Ok(())
34        }
35    }
36}