Skip to content

Commit 909cb55

Browse files
committed
fix: fix shellexpand again
1 parent e2fe751 commit 909cb55

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

bats-tests/tests.sh

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,24 +106,23 @@ setup() {
106106
@test "Profile should override default vars" {
107107
run bombadil link
108108
assert_success
109-
assert_file_exist "$HOME/.bashrc"
110-
assert_symlink_to "$HOME/dotfiles/.dots/bashrc" "$HOME/.bashrc"
111-
assert_file_contains "$HOME/.bashrc" "export JAVA_HOME=/etc/java11-openjdk"
109+
assert_file_exist "$HOME/.shrc"
110+
assert_symlink_to "$HOME/dotfiles/.dots/shrc" "$HOME/.shrc"
111+
assert_file_contains "$HOME/.shrc" "export JAVA_HOME=/etc/java11-openjdk"
112112

113113
run bombadil link -p java-16
114114
assert_success
115-
assert_file_contains "$HOME/.bashrc" "export JAVA_HOME=/etc/java16-openjdk"
115+
assert_file_contains "$HOME/.shrc" "export JAVA_HOME=/etc/java16-openjdk"
116116
}
117117

118118
@test "Profile should override scoped vars" {
119119
run bombadil link
120120
assert_success
121-
assert_file_exist "$HOME/.bashrc"
122-
assert_symlink_to "$HOME/dotfiles/.dots/bashrc" "$HOME/.bashrc"
123-
assert_file_contains "$HOME/.bashrc" "export JAVA_HOME=/etc/java11-openjdk"
121+
assert_file_exist "$HOME/.shrc"
122+
assert_symlink_to "$HOME/dotfiles/.dots/shrc" "$HOME/.shrc"
123+
assert_file_contains "$HOME/.shrc" "export JAVA_HOME=/etc/java11-openjdk"
124124

125125
run bombadil link -p java-17
126126
assert_success
127-
assert_file_contains "$HOME/.bashrc" "export JAVA_HOME=/etc/java17-openjdk"
127+
assert_file_contains "$HOME/.shrc" "export JAVA_HOME=/etc/java17-openjdk"
128128
}
129-

bats-tests/tom_home/dotfiles/bombadil.toml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,28 @@ dotfiles_dir = "dotfiles"
33
gpg_user_id = "[email protected]"
44

55
[settings]
6-
prehooks = [ "echo Hello from bombadil" ]
7-
vars = [ "vars.toml"]
6+
prehooks = ["echo Hello from bombadil"]
7+
vars = ["vars.toml"]
88

99
[settings.dots]
1010
alacritty = { source = "dummy.dot", target = ".config/dummy.dot" }
1111
maven = { source = "maven/settings.xml", target = ".m2/settings.xml" }
12-
bash = { source = "bashrc", target = "~/.bashrc" }
12+
bash = { source = "shrc", target = "~/.shrc" }
1313

1414
[profiles.corporate.dots]
1515
maven = { source = "maven/corporate.settings.xml", target = ".m2/settings.xml" }
1616

1717
[profiles.i3.dots]
18-
i3 = { source = "i3", target = ".config/i3" }
18+
i3 = { source = "i3", target = ".config/i3" }
1919

2020
[profiles.sway.dots]
21-
sway = { source = "sway", target = ".config/sway" }
21+
sway = { source = "sway", target = ".config/sway" }
2222

2323
[profiles.java-16]
24-
vars = [ "profiles/java16.toml"]
24+
vars = ["profiles/java16.toml"]
2525

2626
[profiles.java-17.dots]
2727
bash = { vars = "profiles/java17.toml" }
2828

2929
[profiles.corporate-sway]
3030
extra_profiles = ["corporate", "sway"]
31-
32-
File renamed without changes.

src/paths/mod.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,12 @@ pub trait DotPaths {
3232

3333
impl DotPaths for Dot {
3434
fn target(&self) -> Result<PathBuf> {
35-
if self.target.is_absolute() {
36-
Ok(self.target.clone())
35+
let path = &self.target.to_string_lossy();
36+
let path = shellexpand::tilde(path.as_ref());
37+
let path = Path::new(path.as_ref());
38+
39+
if path.is_absolute() {
40+
Ok(path.to_path_buf())
3741
} else {
3842
home_dir()
3943
.map(|home| home.join(&self.target))

0 commit comments

Comments
 (0)