![AlexMunoz@users.noreply.github.com](/assets/img/avatar_default.png)
![GitHub](/assets/img/avatar_default.png)
13 changed files with 171 additions and 3 deletions
@ -0,0 +1,36 @@ |
|||||||
|
use super::command::Command; |
||||||
|
use crate::config::FnmConfig; |
||||||
|
use crate::fs::remove_symlink_dir; |
||||||
|
use snafu::{ensure, ResultExt, Snafu}; |
||||||
|
use structopt::StructOpt; |
||||||
|
|
||||||
|
#[derive(StructOpt, Debug)] |
||||||
|
pub struct Unalias { |
||||||
|
pub(crate) requested_alias: String, |
||||||
|
} |
||||||
|
|
||||||
|
impl Command for Unalias { |
||||||
|
type Error = Error; |
||||||
|
|
||||||
|
fn apply(self, config: &FnmConfig) -> Result<(), Self::Error> { |
||||||
|
let alias_path = config.aliases_dir().join(&self.requested_alias); |
||||||
|
ensure!( |
||||||
|
alias_path.exists(), |
||||||
|
AliasNotFound { |
||||||
|
requested_alias: self.requested_alias |
||||||
|
} |
||||||
|
); |
||||||
|
|
||||||
|
remove_symlink_dir(&alias_path).context(CantDeleteSymlink)?; |
||||||
|
|
||||||
|
Ok(()) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#[derive(Debug, Snafu)] |
||||||
|
pub enum Error { |
||||||
|
#[snafu(display("Can't delete symlink: {}", source))] |
||||||
|
CantDeleteSymlink { source: std::io::Error }, |
||||||
|
#[snafu(display("Requested alias {} not found", requested_alias))] |
||||||
|
AliasNotFound { requested_alias: String }, |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
set -e |
||||||
|
shopt -s expand_aliases |
||||||
|
|
||||||
|
eval "$(fnm env)" |
||||||
|
fnm install 11.10.0 |
||||||
|
fnm install 8.11.3 |
||||||
|
fnm alias 8.11.3 version8 |
||||||
|
fnm ls | grep version8 |
||||||
|
fnm unalias version8 |
||||||
|
fnm use version8 2>&1 | grep 'Requested version version8 is not currently installed' |
@ -0,0 +1,11 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
fnm env | source |
||||||
|
fnm install 11.10.0 |
||||||
|
fnm install 8.11.3 |
||||||
|
fnm alias 8.11.3 version8 |
||||||
|
fnm ls | grep version8 |
||||||
|
fnm unalias version8 |
||||||
|
fnm use version8 2>&1 | grep 'Requested version version8 is not currently installed' |
@ -0,0 +1,12 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
$ErrorActionPreference = "Stop" |
||||||
|
fnm env | Out-String | Invoke-Expression |
||||||
|
fnm install 11.10.0 |
||||||
|
fnm install 8.11.3 |
||||||
|
fnm alias 8.11.3 version8 |
||||||
|
$($__out__ = $(fnm ls | Select-String 'version8'); echo $__out__; if ($__out__ -eq $null){ exit 1 } else { $__out__ }) |
||||||
|
fnm unalias version8 |
||||||
|
$($__out__ = $($($_tmp_err_action = $ErrorActionPreference;$ErrorActionPreference = "Continue";fnm use version8 2>&1;$ErrorActionPreference = $_tmp_err_action) | Select-String 'Requested version version8 is not currently installed'); echo $__out__; if ($__out__ -eq $null){ exit 1 } else { $__out__ }) |
@ -0,0 +1,12 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
set -e |
||||||
|
eval "$(fnm env)" |
||||||
|
fnm install 11.10.0 |
||||||
|
fnm install 8.11.3 |
||||||
|
fnm alias 8.11.3 version8 |
||||||
|
fnm ls | grep version8 |
||||||
|
fnm unalias version8 |
||||||
|
fnm use version8 2>&1 | grep 'Requested version version8 is not currently installed' |
@ -0,0 +1,9 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
set -e |
||||||
|
shopt -s expand_aliases |
||||||
|
|
||||||
|
eval "$(fnm --log-level='error' env)" |
||||||
|
fnm unalias lts 2>&1 | grep 'Requested alias lts not found' |
@ -0,0 +1,6 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
fnm --log-level='error' env | source |
||||||
|
fnm unalias lts 2>&1 | grep 'Requested alias lts not found' |
@ -0,0 +1,7 @@ |
|||||||
|
--- |
||||||
|
source: tests/feature_tests/mod.rs |
||||||
|
expression: "&source.trim()" |
||||||
|
--- |
||||||
|
$ErrorActionPreference = "Stop" |
||||||
|
fnm --log-level='error' env | Out-String | Invoke-Expression |
||||||
|
$($__out__ = $($($_tmp_err_action = $ErrorActionPreference;$ErrorActionPreference = "Continue";fnm unalias lts 2>&1;$ErrorActionPreference = $_tmp_err_action) | Select-String 'Requested alias lts not found'); echo $__out__; if ($__out__ -eq $null){ exit 1 } else { $__out__ }) |
Loading…
Reference in new issue