summaryrefslogtreecommitdiff
path: root/etc/guix-install.sh
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <[email protected]>2025-01-21 18:33:39 +0100
committerLudovic Courtès <[email protected]>2025-01-27 14:42:41 +0100
commit8e946568eabba86692b4f7d10748dd59cdd39d38 (patch)
tree151f54036ebea251c47dce8e61c0e4e7ba00be54 /etc/guix-install.sh
parent145dfde05ff568caa09bd3a4110b98c11efb87bd (diff)
guix-install.sh: uninstall: Also remove shell completion symlinks.
Since symlinks to shell completion files are installed, it is useful to remove them during the uninstallation, especially when they point to files that are removed by 'guix-install.sh --uninstall'. * etc/guix-install.sh (sys_delete_shell_completion): Create. (sys_create_shell_completion): hardcode files being installed. (sys_customize_bashrc): call sys_delete_shell_completion. Change-Id: I70008bb55e7e1604f0c485c798460e160af7c9e5 Signed-off-by: Ludovic Courtès <[email protected]>
Diffstat (limited to 'etc/guix-install.sh')
-rwxr-xr-xetc/guix-install.sh27
1 files changed, 24 insertions, 3 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index f07b2741bb..22d54c0c83 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -16,6 +16,7 @@
# Copyright © 2024 Janneke Nieuwenhuizen <[email protected]>
# Copyright © 2024 Tomas Volf <[email protected]>
# Copyright © 2024 Richard Sent <[email protected]>
+# Copyright © 2025 Denis 'GNUtoo' Carikli <[email protected]>
#
# This file is part of GNU Guix.
#
@@ -691,12 +692,31 @@ sys_create_shell_completion()
[ -d "$dir_shell" ] || mkdir -p $dir_shell
done;
- ln -sf ${var_guix}/etc/bash_completion.d/* "$bash_completion";
- ln -sf ${var_guix}/share/zsh/site-functions/* "$zsh_completion";
- ln -sf ${var_guix}/share/fish/vendor_completions.d/* "$fish_completion"; } &&
+ # Don't use globing here as we also need to delete the files when
+ # uninstalling Guix
+ ln -sf ${var_guix}/etc/bash_completion.d/guix "$bash_completion";
+ ln -sf ${var_guix}/etc/bash_completion.d/guix-daemon "$bash_completion";
+ ln -sf ${var_guix}/share/zsh/site-functions/_guix "$zsh_completion";
+ ln -sf ${var_guix}/share/fish/vendor_completions.d/guix.fish "$fish_completion"; } &&
_msg "${PAS}installed shell completion"
}
+sys_delete_shell_completion()
+{ # Symlink supported shell completions system-wide
+
+ var_guix=/var/guix/profiles/per-user/root/current-guix
+ bash_completion=/etc/bash_completion.d
+ zsh_completion=/usr/share/zsh/site-functions
+ fish_completion=/usr/share/fish/vendor_completions.d
+
+ _msg "${INF}removing shell completion"
+
+ rm -f "$bash_completion"/guix;
+ rm -f "$bash_completion"/guix-daemon;
+ rm -f "$zsh_completion"/_guix;
+ rm -f "$fish_completion"/guix.fish;
+}
+
sys_customize_bashrc()
{
prompt_yes_no "Customize users Bash shell prompt for Guix?" || return 0
@@ -884,6 +904,7 @@ main_uninstall()
# clean up the system
sys_delete_init_profile
sys_delete_build_user
+ sys_delete_shell_completion
# these directories are created on the fly during usage.
_msg "${INF}removing /etc/guix"