diff options
Diffstat (limited to 'Config/installfns.sh')
-rwxr-xr-x | Config/installfns.sh | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/Config/installfns.sh b/Config/installfns.sh index de7a52bce..eb552b76d 100755 --- a/Config/installfns.sh +++ b/Config/installfns.sh @@ -1,48 +1,26 @@ #!/bin/sh -if test -d $fndir.old; then - add_old=1 -fi +fndir=$DESTDIR$fndir $sdir_top/mkinstalldirs $fndir || exit 1; -# If the source directory is somewhere else, we need to force -# the shell to expand it in that directory, then strip it off. -install= -for file in $FUNCTIONS_INSTALL; do - if test -f "$sdir/$file"; then - install="$install $file" - else - install="$install `echo $sdir/$file | sed -e \"s%$sdir/%%g\"`" - fi -done +allfuncs="`grep ' functions=' ${dir_top}/config.modules | + sed -e '/^#/d' -e '/ link=no/d' -e 's/^.* functions=//'`" + +allfuncs="`cd $sdir_top; echo ${allfuncs}`" -for file in $install; do - if test -f $sdir/$file; then +# We now have a list of files, but we need to use `test -f' to check +# (1) the glob got expanded (2) we are not looking at directories. +for file in $allfuncs; do + if test -f $sdir_top/$file; then if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then - subfile="$file" - subdir="`echo $file | sed -e 's%/[^/]*$%%'`" - olddir="$fndir.old/$subdir" + subdir="`echo $file | sed -e 's%/[^/]*$%%' \ + -e s%^Functions/%% -e s%^Completion/%%`" instdir="$fndir/$subdir" else - subfile="`echo $file | sed -e 's%^.*/%%'`" - olddir="$fndir.old" instdir="$fndir" fi - if test -f $fndir/$subfile; then - if cmp $fndir/$subfile $sdir/$file >/dev/null; then :; else - $sdir_top/mkinstalldirs $olddir - mv $fndir/$subfile $olddir - : ${add_old:=1} - fi - fi - $sdir_top/mkinstalldirs $instdir || exit 1 - $INSTALL_DATA $sdir/$file $instdir || exit 1 + test -d $instdir || $sdir_top/mkinstalldirs $instdir || exit 1 + $INSTALL_DATA $sdir_top/$file $instdir || exit 1 fi done - -if test x$add_old != x1; then - rm -rf $fndir.old -fi - -exit 0 |