#!/bin/bash # $Header: /home/cvsroot/gentoo-src/portage/bin/g-cpan.pl,v 1.10 2003/05/24 05:40:37 jrray Exp $ # History: # 18/12/03: usata@gentoo.org: Initial code source /sbin/functions.sh [[ -z "${DISTDIR}" ]] && source /etc/make.conf [[ -z "${DISTDIR}" ]] && source /etc/make.globals CTANMASTERSITE="http://www.ctan.org/" TEXMF="/usr/share/texmf" CATALOGUE="${TEXMF}/doc/help/Catalogue" if [[ -x /usr/bin/w3m ]] ; then TEXTBROWSER="/usr/bin/w3m" elif [[ -x /usr/bin/elinks ]] ; then TEXTBROWSER="/usr/bin/elinks" elif [[ -x /usr/bin/lynx ]] ; then TEXTBROWSER="/usr/bin/lynx -nolist" else ewarn "You must install w3m, elinks or lynx to use this script." exit 1 fi do_help() { echo "Usage: $0 action [target]" echo "Action:" echo " help Display this information" echo " list List available packages on CTAN catalogue" echo " search Search CTAN catalogue for " echo " install Install from CTAN" echo "" echo "Report bugs to ." } do_list() { ${TEXTBROWSER} ${CATALOGUE}/brief.html } do_search() { ${TEXTBROWSER} -dump ${CATALOGUE}/brief.html | grep "$@" } do_install() { local MY_PN="$1" local MY_P="${MY_PN}-0.0_pre$(date "+%Y%m%d")" local CTAN_TMPDIR="`mktemp -d /tmp/g-ctan.XXXXXXXX`" mkdir -p ${CTAN_TMPDIR}/dev-tex/${MY_PN} # Extracting informantion from Catalogue ${TEXTBROWSER} -dump ${CATALOGUE}/brief.html \ | grep "^[[:space:]]*${MY_PN}" > ${CTAN_TMPDIR}/pkg-descr local DESCRIPTION=$(sed -e "s/^[[:space:]]*\w*[[:space:]]*//" ${CTAN_TMPDIR}/pkg-descr) local SRC_URI="$(grep "${MY_PN}" ${CATALOGUE}/hier.html | sed -e "s/.*\"\(.*\)\/\".*/\1/").tar.gz" local LICENSE="$(grep License ${CATALOGUE}/entries/${MY_PN}.html | sed -e "s/.*licenses\.\(\w*\)\..*/\1/")" # Removing old directory hierarchy SRC_URI=${SRC_URI/supported\//} SRC_URI=${SRC_URI/other\//} if [[ -z "${SRC_URI%.tar.gz}" ]] ; then eerror "Package ${MY_PN} was not found in Catalogue database." exit 1 fi # Rename LICENSE as Portage compliant case ${LICENSE} in artistic) LICENSE="Artistic" ;; bsd) LICENSE="BSD" ;; gpl) LICENSE="GPL-2" ;; lgpl) LICENSE="LGPL-2.1" ;; lppl) LICENSE="LPPL-1.2" ;; nocommercial) LICENSE="free-noncomm" ;; pd) LICENSE="public-domain" ;; dfsg|knuth|nosource|unknown) LICENSE="freedist" ;; *) ewarn "License of the software is ${LICENSE}." ewarn "Please check the software's license before using the software." ;; esac einfo "Package: ${MY_PN}" einfo "Description: ${DESCRIPTION}" einfo "SRC_URI: ${SRC_URI}" einfo "License: ${LICENSE}" cat >${CTAN_TMPDIR}/dev-tex/${MY_PN}/${MY_P}.ebuild<