[PATCH v1] guix-install.sh: uninstall: also remove shell completion symlinks.

  • Open
  • quality assurance status badge
Details
One participant
  • Denis 'GNUtoo' Carikli
Owner
unassigned
Submitted by
Denis 'GNUtoo' Carikli
Severity
normal
D
D
Denis 'GNUtoo' Carikli wrote 11 hours ago
(address . guix-patches@gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
fe2dbdd6c5a43647814c8bb8c7dc8905037d5dcc.1737480819.git.GNUtoo@cyberdimension.org
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.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Change-Id: I70008bb55e7e1604f0c485c798460e160af7c9e5
---
etc/guix-install.sh | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)

Toggle diff (59 lines)
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index f07b2741bb9..22d54c0c832 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -16,6 +16,7 @@
# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2024 Tomas Volf <~@wolfsden.cz>
# Copyright © 2024 Richard Sent <richard@freakingpenguin.com>
+# Copyright © 2025 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# 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"

base-commit: ae217b7159ee202229eab39cd49adb9254cd4a96
--
2.46.0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 75736@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 75736
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch