mc/mcfn_install.in

137 lines
3.4 KiB
Bash

#!/bin/sh
#
prefix=@prefix@
suppbindir=@prefix@/lib/mc/bin
do_compat_replace () {
cp $1 $1.orig
if test "$?" != "0"; then
echo "Command \`cp $1 $1.orig' failed. File $1 not changed!"
return 1
fi
sed '/^mc ()/ {
# Add comment
i\
#Commented out by mc_fninstall. Source @prefix@/lib/mc/bin/mc.sh instead.
}
/^mc ()[^}]*$/,/}[; ]*$/{
# Function definition over several lines
s/^\(.*\)$/#\1/g
}
/^mc ().*}.*$/{
# Function definition on one line
s/^\(.*\)$/#\1/g
}' < $1.orig > $1
echo >> $1
echo ". $suppbindir/mc.sh" >> $1
echo ""
echo "I commented out the mc () function definitions in $1 and added"
echo "\`. $suppbindir/mc.sh'. Your previous profile has been saved as"
echo "$1.orig."
}
if test -n `echo $prefix | grep prefix`; then
prefix=/usr/local
fi
if test x$BASH = x; then
BASHRC=
else
BASHRC=~/.bashrc
fi
if test "x$EUID" = x0; then
PROFILE=/etc/profile
else
PROFILE=~/.profile
fi
if test -f $PROFILE; then
A=`grep "mc ()" $PROFILE`
B=
if test -n "$BASHRC"; then
if test -f $BASHRC; then
B=`grep "mc ()" $BASHRC`
fi
fi
if test -n "$A" -o -n "$B"; then
if test -n "$B"; then
echo "While examining your $PROFILE and $BASHRC,"
else
echo "While examining your $PROFILE,"
fi
echo "I've found that you have a probably outdated mc () function definition"
echo "there. Do you want to replace this function definition with "
echo " . $suppbindir/mc.sh"
read rep
case $rep in
[Yy]*) ;;
*) exit ;;
esac
if test -n "$A"; then
do_compat_replace $PROFILE
fi
if test -n "$B"; then
do_compat_replace $BASHRC
fi
exit 0
fi
unset -f do_compat_replace
# This doesn't handle the case that $prefix changed
A=`grep "/mc.sh" $PROFILE`
B=
if test -n "$BASHRC"; then
if test -f $BASHRC; then
B=`grep "/mc.sh" $BASHRC`
fi
fi
if test -n "$A"; then
:
else
if test -n "$B"; then
:
else
A=`typeset -f | grep "mc ()" 2>/dev/null`
if test ! -n "$A"; then
echo "mc () installation."
if test -n "$BASHRC"; then
echo "While examining your $PROFILE and $BASHRC,"
else
echo "While examining your $PROFILE,"
fi
echo "I've found that you do not source $suppbindir/mc.sh there."
echo "This shell script defines a function which enables a feature of mc(1)"
echo "that when you leave mc(1), you return to a directory where you were"
echo "in mc just before exiting and not to the directory you've started mc"
echo "from."
echo "Would you like to append"
echo "test -f $suppbindir/mc.sh && . $suppbindir/mc.sh"
if test -n "$BASHRC"; then
echo "to your (p) $PROFILE (mc function will be active in your login shells)"
echo -n "or to your (b) $BASHRC (in every bash instance) or (n) no? [p|b|n] "
else
echo -n "function to your $PROFILE? [y|n] "
fi
read rep
if test -n "$BASHRC"; then
INITFILE=$BASHRC
else
INITFILE=$PROFILE
fi
case $rep in
[Yy]*) ;;
[Pp]*) INITFILE=$PROFILE ;;
*) exit 1;;
esac
echo >>$INITFILE
echo 'test -f $suppbindir/mc.sh && . $suppbindir/mc.sh' >>$INITFILE
echo "mc () function appended to your $INITFILE"
fi
fi
fi
fi