Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇136:
Re:pkg_add pkg_delete 作りました [中島] 02/09 01:08

 └◇137:Re:pkg_add pkg_delete 作りました [中島] 02/09


136● Re:pkg_add pkg_delete 作りました[ 中島 ] 2002 02/09 01:08
 テキストなんだから、投稿すればいいだけでした。
#馬鹿だなあ>自分

 投稿サイズの上限はあるのでしょうか。
# sed も awk も sort も cat も使ってないので長いです。

#!/bin/sh
#pkg_add

if [ ! -x /bin/mkdir ]; then
exit 1
elif [ ! -x /bin/tar ]; then
exit 1
elif [ ! -x /bin/gzip ]; then
exit 1
elif [ ! -x /bin/bzip2 ]; then
exit 1
fi

PROG=${0##*/}
if [ $# -lt 1 ]; then
echo "usage: ${PROG} <pkgname1> ... [pkgnameN]" >&2
exit 1
fi

DATDIR=${CYGWIN_SETUP_DAT:="/etc/setup_local"}
if [ ! -d ${DATDIR} ]; then
mkdir ${DATDIR}
fi

### START ###

for i in $@; do
PKGFILE=$i
if [ ! -f ${PKGFILE} ]; then
PKGFILE=${DAVEDIR}/$i
fi
if [ ! -f ${PKGFILE} ]; then
echo "${PROG}: not found PKG $i" >&2
else
DATFILE=${PKGFILE##*/}
DATFILE=${DATFILE%%.*}
DATFILE=${DATFILE%-[0-9]*}
DATFILE=${DATDIR}/${DATFILE}.lst
if [ -f ${DATFILE}.gz ]; then
echo "${PROG}: found ${DATFILE}.gz" >&2
echo "${PROG}: plese uninstall OLD Version" >&2
else
echo "${PROG}: install PKG ${PKGFILE}" >&2
case ${PKGFILE} in
*.bz2) tar xvjf ${PKGFILE} -C / > ${DATFILE} ;;
*.gz) tar xvzf ${PKGFILE} -C / > ${DATFILE} ;;
*.tgz) tar xvzf ${PKGFILE} -C / > ${DATFILE} ;;
*) echo "${PROG}: invalid package type ${PKGFILE}" >&2 ;;
esac
if [ -f ${DATFILE} ]; then
while read line; do
echo $line
done < ${DATFILE}
gzip ${DATFILE}
fi
fi
fi
done

exit 0
スレッド一覧


137● Re:pkg_add pkg_delete 作りました[ 中島 ] 2002 02/09 01:08
 続きです。

#!/bin/sh
# pkg_delete

if [ ! -x /bin/mktemp ]; then
exit 1
elif [ ! -x /bin/tar ]; then
exit 1
elif [ ! -x /bin/gzip ]; then
exit 1
elif [ ! -x /bin/bzip2 ]; then
exit 1
elif [ ! -x /bin/rm ]; then
exit 1
elif [ ! -x /bin/rmdir ]; then
exit 1
fi

PROG=${0##*/}
if [ $# -lt 1 ]; then
echo "usage: ${PROG} <pkgname1> ... [pkgnameN]" >&2
exit 1
fi

DATDIR=${CYGWIN_SETUP_DAT:="/etc/setup_local"}

### START ###

for i in $@; do
PKGFILE=$i
if [ ! -f ${PKGFILE} ]; then
PKGFILE=${SAVEDIR}/$i
fi
if [ ! -f ${PKGFILE} ]; then
echo "${PROG}: not found PKG $i" >&2
else
DATFILE=${PKGFILE##*/}
DATFILE=${DATFILE%%.*}
DATFILE=${DATFILE%-[0-9]*}
DATFILE=${DATDIR}/${DATFILE}.lst
if [ -f ${DATFILE}.gz ]; then
echo "${PROG}: found DAT ${DATFILE}.gz" >&2
TMPF=`mktemp -t pkg_delete.XXXXXXXX`
gzip -dc ${DATFILE}.gz > ${TMPF}
rm -f ${DATFILE}.gz
else
echo "${PROG}: not found DAT ${DATFILE}.gz" >&2
echo "${PROG}: making list from ${PKGFILE}" >&2
TMPF=`mktemp -t pkg_delete.XXXXXXXX`
case ${PKGFILE} in
*.bz2) tar xvjf ${PKGFILE} -C /dev/null > ${TMPF} ;;
*.gz) tar xvzf ${PKGFILE} -C /dev/null > ${TMPF} ;;
*.tgz) tar xvzf ${PKGFILE} -C /dev/null > ${TMPF} ;;
*) echo "${PROG}: invalid package type ${PKGFILE}" >&2 ;;
esac
fi
while read line; do
FILE=`echo $line`
if [ -f /${FILE} ]; then
rm -f /${FILE} > /dev/null 2>&1
if [ $? -eq 0 ]; then echo "remove file: /${FILE}"; fi
fi
done < ${TMPF}
while read line; do
FILE=`echo $line`
if [ -d /${FILE} ]; then
rmdir /${FILE} > /dev/null 2>&1
if [ $? -eq 0 ]; then echo "remove dir: /${FILE}"; fi
fi
done < ${TMPF}
rm -f ${TMPF}
fi
done

exit 0
スレッド一覧

早田のホームページへ
CGIROOM