#!/bin/bash # mkslack # # By Eko M. Budi # Released under GNU GPL # function usage() { cat <<_EOF_ makeslack - make slackware txt information usage: $0 [all|new] all : create all info new : create new info _EOF_ } function gen_txt { if [ ! -f $1 ]; then echo "File not found: $1" exit 1; fi DNAME=`dirname $1` BNAME=`basename $1` PNAME=`pkgname $1` TFILE="$DNAME/${BNAME%.tgz}.txt" echo "$PNAME: generating info" # extract install info first rm -rf install if ! tar xzf $1 install; then if ! tar xzf $1 ./install; then echo "$PNAME: no install information !" exit 1 fi fi # Ok, here we go .. if [ -f install/slack-desc ]; then cat install/slack-desc | grep -E "(^$PNAME|BUILDDATE|HOST|DISTRO)" > $TFILE else echo "$PNAME: no description !" echo "$PNAME" > $TFILE fi echo "" >> $TFILE # cleaning up rm -rf install } ############################################# # main program case "$1" in all) for pkg in `find . -type f -name '*.tgz' -print`; do gen_txt $pkg done ;; new) for pkg in `find . -type f -name '*.tgz' -print`; do if [ $pkg -nt ${pkg%tgz}txt ]; then gen_txt $pkg fi done ;; pkg) if [ -n "$2" ]; then gen_txt $2 else usage fi ;; *) usage ;; esac