mirror of https://github.com/MidnightCommander/mc
137 lines
3.4 KiB
Bash
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
|