#!/bin/bash SELF=$(basename $0) HOMEDIR=$PWD if [ $# = 0 ]; then cat << EOF usage: $SELF Convert a perl-module into a Slackware package. EOF exit 1 fi SEEK=${1//::/\/} DIRNAME=${1//::/-} FOUND="" for SEARCH in $(perl -e 'print("@INC");'); do if [ -r "$SEARCH/$SEEK/.packlist" ]; then FOUND="$SEARCH/$SEEK/.packlist" break elif [ -r "$SEARCH/auto/$SEEK/.packlist" ]; then FOUND="$SEARCH/auto/$SEEK/.packlist" break fi done if [ -z "$FOUND" ]; then echo "$SELF: could not find .packlist for $1" exit 1 fi TMPDIR=/var/tmp/$SELF.$$ mkdir -p $TMPDIR trap "rm -rf $TMPDIR" INT EXIT (cat $FOUND; echo $FOUND) | cpio --quiet -pd $TMPDIR || exit 1 cd $TMPDIR || exit 1 mkdir -p install NAME=$(echo ${1//::/-} | tr [[:upper:]] [[:lower:]]) VERSION=$(perl -e "use $1; print \$$1::VERSION;") # Can't get version programatically, try CPAN build directory if [ -z "$VERSION" ]; then if [ -r ~/.cpan/build/$DIRNAME-* ]; then VERSION=~/.cpan/build/$DIRNAME-* VERSION=$(basename $VERSION) VERSION=${VERSION#$DIRNAME-} fi fi cat << EOF > install/slack-desc perl-$NAME: perl-$NAME: $1 Perl module version $VERSION perl-$NAME: EOF yes | makepkg $HOMEDIR/perl-$NAME-$VERSION-i386-1.tgz