#!/bin/bash set -e usage="cpan2deb " if [ $# -ne 1 ]; then echo $usage exit 1 fi cd $HOME if [ -d locallib ]; then rm -rf locallib fi if [ -d build ]; then rm -rf build fi echo "call CPAN ..." cpan -m $1 1>cpan.out 2>&1 || (echo "cpan failed"; exit 1) # find build directory mname=$1 name=lib${mname/::/-}-perl name=${name,,*} #builddir_prefix=${mname/::/-} builddir=$(ls -rtd ~/.cpan/build/*/ |tail -1) cd $builddir perl Makefile.PL INSTALL_BASE="~/locallib" make make install 1>~/cpan.out 2>&1 echo "Module $1 installed to ~/locallib, output written to cpan.out" cd # check version version=$(perl -M$mname -e 'print $ARGV[0]->VERSION' $mname) mkdir build cd build mkdir -p $name/DEBIAN cat << EOF >$name/DEBIAN/control Package: $name Version: $version Section: base Priority: optional Architecture: all Depends: Maintainer: WagnerTech UG Description: $1 perl modul EOF # execute copy script #mkdir -p $name/usr/share/perl5 #mkdir -p $name/usr/share/man #. cpan.cp $name # move locallib content mkdir -p $name/usr/local/ for dir in $(ls ~/locallib); do case $dir in lib) ;; share) mv ~/locallib/share $name/usr/local/ ;; man) mv ~/locallib/man $name/usr/ ;; esac done fakeroot dpkg-deb --build $name cp $name.deb ${name}_$version.deb echo "${name}_$version.deb erstellt."