diff --git a/common/bin/dotfiles-link-environments b/common/bin/dotfiles-link-environments index 0d157d0..2da58f3 100755 --- a/common/bin/dotfiles-link-environments +++ b/common/bin/dotfiles-link-environments @@ -1,21 +1,39 @@ #!/usr/bin/env fish -set dfp (realpath (dirname (status -f))/../..) -function files - cat $argv[1] | while read -l l - test -d $l && echo $l +has_command fzf || begin + echo "fzf not installed" + exit 1 +end + +mkdir -p $ENV_PATH + +function filter_existing_directory + while read -l l + test -d $DOTFILES_PATH/$l && echo $l end end -files $dfp/common/envs | \ - fzf --multi --prompt "Select applicable environments (multi-select w/ TAB): " \ - --preview-window="up:50%:noborder" \ - --preview="ls -la --color=always {}" | \ - string trim | \ - read -a -d \n -z lines -mkdir -p $ENV_PATH -for l in $lines - test $l = "" && continue - set ll (string replace -a / - $l) - echo "Linking $ENV_PATH/$ll to $dfp/$l" - ln -s $dfp/$l $ENV_PATH/$ll &>/dev/null + +function reject_empty_lines + while read -l l + test $l = "" || echo $l + end end + +function link + while read -l l + set safe_fn (string replace -a / - $l) + echo "Linking $ENV_PATH/$safe_fn to $DOTFILES_PATH/$l" + rm -f $ENV_PATH/$safe_fn + ln -s $DOTFILES_PATH/$l $ENV_PATH/$safe_fn + end +end + +cat $DOTFILES_PATH/common/envs | + filter_existing_directory | + fzf --multi \ + --prompt "Select applicable environments (multi-select w/ TAB): " \ + --preview-window="up:50%:noborder" \ + --preview="ls -la --color=always $DOTFILES_PATH/{}" | + string trim | + reject_empty_lines | + link diff --git a/host/desktop/desktop b/host/desktop/desktop deleted file mode 120000 index bedc7ee..0000000 --- a/host/desktop/desktop +++ /dev/null @@ -1 +0,0 @@ -/home/daniel/.home/.config/lytedev-dotfiles/host/desktop \ No newline at end of file