From 730402d64b6ccb8bf31b6b96a9348cff574cf301 Mon Sep 17 00:00:00 2001 From: LukenShiro Date: Wed, 14 Dec 2011 14:21:31 -0600 Subject: [PATCH] perl/perl-file-listing: Added (parse directory listing) Signed-off-by: Robby Workman --- perl/perl-file-listing/README | 25 ++++++ .../perl-file-listing.SlackBuild | 90 +++++++++++++++++++ perl/perl-file-listing/perl-file-listing.info | 10 +++ perl/perl-file-listing/slack-desc | 19 ++++ 4 files changed, 144 insertions(+) create mode 100644 perl/perl-file-listing/README create mode 100644 perl/perl-file-listing/perl-file-listing.SlackBuild create mode 100644 perl/perl-file-listing/perl-file-listing.info create mode 100644 perl/perl-file-listing/slack-desc diff --git a/perl/perl-file-listing/README b/perl/perl-file-listing/README new file mode 100644 index 0000000000..9d2fc2392a --- /dev/null +++ b/perl/perl-file-listing/README @@ -0,0 +1,25 @@ +This module exports a single function called parse_dir(), which can +be used to parse directory listings. +The first parameter to parse_dir() is the directory listing to parse. +It can be a scalar, a reference to an array of directory lines or a +glob representing a filehandle to read the directory listing from. +The second parameter is the time zone to use when parsing time stamps +in the listing. If this value is undefined, then the local time zone +is assumed. +The third parameter is the type of listing to assume. Currently +supported formats are 'unix', 'apache' and 'dosftp'. The default value +'unix'. Ideally, the listing type should be determined automatically. +The fourth parameter specifies how unparseable lines should be treated. +Values can be 'ignore', 'warn' or a code reference. Warn means that the +perl warn() function will be called. If a code reference is passed, then +this routine will be called and the return value from it will be incorporated +in the listing. The default is 'ignore'. +Only the first parameter is mandatory. +The return value from parse_dir() is a list of directory entries. In a scalar +context the return value is a reference to the list. The directory entries +are represented by an array consisting of [ $filename, $filetype, $filesize, +$filetime, $filemode ]. The $filetype value is one of the letters 'f', 'd', +'l' or '?'. The $filetime value is the seconds since Jan 1, 1970. The +$filemode is a bitmask like the mode returned by stat(). + +This requires perl-http-date. diff --git a/perl/perl-file-listing/perl-file-listing.SlackBuild b/perl/perl-file-listing/perl-file-listing.SlackBuild new file mode 100644 index 0000000000..e3a5fde081 --- /dev/null +++ b/perl/perl-file-listing/perl-file-listing.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Slackware build script for perl-file-listing + +# Copyright 2011 LukenShiro, Italy +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=perl-file-listing +VERSION=${VERSION:-6.03} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SRCNAM=File-Listing +DOCFILES="Changes README" + +set -e # Exit on most errors + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo "y" | CFLAGS="$SLKCFLAGS" perl Makefile.PL \ + PREFIX=/usr \ + INSTALLDIRS=vendor \ + INSTALLVENDORMAN3DIR=/usr/man/man3 +make +make test +make install DESTDIR=$PKG + +# Remove perllocal.pod and other special files that don't need to be installed +find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true + +# Remove empty directories +find $PKG -depth -type d -empty -exec rm -rf {} \; + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCFILES $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/perl/perl-file-listing/perl-file-listing.info b/perl/perl-file-listing/perl-file-listing.info new file mode 100644 index 0000000000..be4c85e5f2 --- /dev/null +++ b/perl/perl-file-listing/perl-file-listing.info @@ -0,0 +1,10 @@ +PRGNAM="perl-file-listing" +VERSION="6.03" +HOMEPAGE="http://search.cpan.org/dist/File-Listing/" +DOWNLOAD="http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/File-Listing-6.03.tar.gz" +MD5SUM="ad56d06a719503198c02188995f32c9e" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +MAINTAINER="LukenShiro" +EMAIL="lukenshiro@ngi.it" +APPROVED="rworkman" diff --git a/perl/perl-file-listing/slack-desc b/perl/perl-file-listing/slack-desc new file mode 100644 index 0000000000..1ebc6340ac --- /dev/null +++ b/perl/perl-file-listing/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The handy ruler below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |------------------------------------------------------------| +perl-file-listing: perl-file-listing (parse directory listing) +perl-file-listing: +perl-file-listing: This perl module exports a single function called +perl-file-listing: parse_dir(), which can be used to parse directory listings. +perl-file-listing: +perl-file-listing: http://search.cpan.org/dist/File-Listing/ +perl-file-listing: +perl-file-listing: +perl-file-listing: +perl-file-listing: +perl-file-listing: