root/pm2tgz/trunk/pm2tgz

Revision 264, 1.2 kB (checked in by root, 5 years ago)

Initial import.

  • Property svn:executable set to
Line 
1 #!/bin/bash
2
3 SELF=$(basename $0)
4 HOMEDIR=$PWD
5
6 if [ $# = 0 ]; then
7         cat << EOF
8 usage: $SELF <perl-module>
9
10 Convert a perl-module into a Slackware package.
11 EOF
12         exit 1
13 fi
14
15 SEEK=${1//::/\/}
16 DIRNAME=${1//::/-}
17 FOUND=""
18
19 for SEARCH in $(perl -e 'print("@INC");'); do
20         if [ -r "$SEARCH/$SEEK/.packlist" ]; then
21                 FOUND="$SEARCH/$SEEK/.packlist"
22                 break
23         elif [ -r "$SEARCH/auto/$SEEK/.packlist" ]; then
24                 FOUND="$SEARCH/auto/$SEEK/.packlist"
25                 break
26         fi
27 done
28
29 if [ -z "$FOUND" ]; then
30         echo "$SELF: could not find .packlist for $1"
31         exit 1
32 fi
33
34 TMPDIR=/var/tmp/$SELF.$$
35 mkdir -p $TMPDIR
36 trap "rm -rf $TMPDIR" INT EXIT
37 (cat $FOUND; echo $FOUND) | cpio --quiet -pd $TMPDIR || exit 1
38 cd $TMPDIR || exit 1
39 mkdir -p install
40
41 NAME=$(echo ${1//::/-} | tr [[:upper:]] [[:lower:]])
42 VERSION=$(perl -e "use $1; print \$$1::VERSION;")
43
44 # Can't get version programatically, try CPAN build directory
45 if [ -z "$VERSION" ]; then
46         if [ -r ~/.cpan/build/$DIRNAME-* ]; then
47                 VERSION=~/.cpan/build/$DIRNAME-*
48                 VERSION=$(basename $VERSION)
49                 VERSION=${VERSION#$DIRNAME-}
50         fi
51 fi
52
53 cat << EOF > install/slack-desc
54 perl-$NAME:
55 perl-$NAME: $1 Perl module version $VERSION
56 perl-$NAME:
57 EOF
58 yes | makepkg $HOMEDIR/perl-$NAME-$VERSION-i386-1.tgz
Note: See TracBrowser for help on using the browser.