diff options
author | Denis 'GNUtoo' Carikli <[email protected]> | 2025-01-21 18:33:39 +0100 |
---|---|---|
committer | Ludovic Courtès <[email protected]> | 2025-01-27 14:42:41 +0100 |
commit | 8e946568eabba86692b4f7d10748dd59cdd39d38 (patch) | |
tree | 151f54036ebea251c47dce8e61c0e4e7ba00be54 /etc/guix-install.sh | |
parent | 145dfde05ff568caa09bd3a4110b98c11efb87bd (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-x | etc/guix-install.sh | 27 |
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" |