From e4cf0358a216b41108c7a3e055111a3bb517d92e Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Thu, 18 Aug 2011 18:10:09 +0200 Subject: [PATCH] 90-update-alternatives: check for available alternatives before setting them. The binaries aren't necessarily available for update-alternatives even though the binary themselves are present. Therefore execute update-alternatives using the --list option and check whether the preferred binary is available before setting it. --- .../config/scripts/GRMLBASE/90-update-alternatives | 47 +++++++++++++--------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/etc/grml/fai/config/scripts/GRMLBASE/90-update-alternatives b/etc/grml/fai/config/scripts/GRMLBASE/90-update-alternatives index b28abdd..7b541f5 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/90-update-alternatives +++ b/etc/grml/fai/config/scripts/GRMLBASE/90-update-alternatives @@ -9,43 +9,54 @@ set -u set -e -if [ -r $target/usr/bin/vim.basic ] ; then - $ROOTCMD update-alternatives --set editor /usr/bin/vim.basic - $ROOTCMD update-alternatives --set vi /usr/bin/vim.basic - $ROOTCMD update-alternatives --set vim /usr/bin/vim.basic - $ROOTCMD update-alternatives --set view /usr/bin/vim.basic -fi - -if [ -r $target/usr/bin/vim.gtk ] ; then +if $ROOTCMD update-alternatives --list editor 2>/dev/null | grep -q vim.gtk ; then + echo "Setting vim.gtk as editor using update-alternatives." $ROOTCMD update-alternatives --set editor /usr/bin/vim.gtk $ROOTCMD update-alternatives --set vi /usr/bin/vim.gtk $ROOTCMD update-alternatives --set vim /usr/bin/vim.gtk $ROOTCMD update-alternatives --set view /usr/bin/vim.gtk +elif $ROOTCMD update-alternatives --list editor 2>/dev/null | grep -q vim.basic ; then + echo "Setting vim.basic as editor using update-alternatives." + $ROOTCMD update-alternatives --set editor /usr/bin/vim.basic + $ROOTCMD update-alternatives --set vi /usr/bin/vim.basic + $ROOTCMD update-alternatives --set vim /usr/bin/vim.basic + $ROOTCMD update-alternatives --set view /usr/bin/vim.basic +elif $ROOTCMD update-alternatives --list editor 2>/dev/null | grep -q vim.tiny ; then + echo "Setting vim.tiny as editor using update-alternatives." + $ROOTCMD update-alternatives --set editor /usr/bin/vim.tiny + $ROOTCMD update-alternatives --set vi /usr/bin/vim.tiny + $ROOTCMD update-alternatives --set vim /usr/bin/vim.tiny + $ROOTCMD update-alternatives --set view /usr/bin/vim.tiny +else + echo "Warning: No vim binary suitable for update-alternatives found." fi -if [ -r $target/usr/bin/uxterm ] ; then +if $ROOTCMD update-alternatives --list x-terminal-emulator 2>/dev/null | grep -q '/uxterm' ; then + echo "Setting uxterm as x-terminal-emulator using update-alternatives." $ROOTCMD update-alternatives --set x-terminal-emulator /usr/bin/uxterm -elif [ -r $target/usr/bin/xterm ] ; then +elif $ROOTCMD update-alternatives --list x-terminal-emulator 2>/dev/null | grep -q '/xterm' ; then + echo "Setting xterm as x-terminal-emulator using update-alternatives." $ROOTCMD update-alternatives --set x-terminal-emulator /usr/bin/xterm fi -if [ -r $target/etc/X11/cursors/whiteglass.theme ] ; then +if $ROOTCMD update-alternatives --list x-cursor-theme 2>/dev/null | grep -q '/whiteglass.theme' ; then + echo "Setting whiteglass.theme as x-cursor-theme using update-alternatives." $ROOTCMD update-alternatives --set x-cursor-theme /etc/X11/cursors/whiteglass.theme fi -if [ -r $target/usr/bin/iceweasel ] || [ -L $target/usr/bin/iceweasel ] ; then +if $ROOTCMD update-alternatives --list x-www-browser 2>/dev/null | grep -q '/iceweasel' ; then + echo "Setting iceweasel as x-www-browser using update-alternatives." $ROOTCMD update-alternatives --set x-www-browser /usr/bin/iceweasel fi -if [ -r $target/usr/bin/w3m ] ; then +if $ROOTCMD update-alternatives --list www-browser 2>/dev/null | grep -q '/w3m' ; then + echo "Setting w3m as www-browser using update-alternatives." $ROOTCMD update-alternatives --set www-browser /usr/bin/w3m fi -if [ -r $target/usr/bin/wm-ng ] ; then - # activate wm-ng only if it is registered as x-window-manager: - if $ROOTCMD update-alternatives --list x-window-manager | grep -q wm-ng ; then - $ROOTCMD update-alternatives --set x-window-manager /usr/bin/wm-ng - fi +if $ROOTCMD update-alternatives --list x-window-manager 2>/dev/null | grep -q '/wm-ng' ; then + echo "Setting wm-ng as x-window-manager using update-alternatives." + $ROOTCMD update-alternatives --set x-window-manager /usr/bin/wm-ng fi # sadly isn't available via update-alternates, anyway - use -- 2.1.4