#!/bin/bash # # Written by Benjamin Schieder # Modified by Juergen Sawinski to create # a package based on freshmeat info # # Use: # newpackage.sh [-main] / # # will create .desc and .conf. .desc will contain the [D] and [COPY] # already filled in. The other tags are mentioned with TODO. # # .conf will contain an empty _main() { } and custmain="_main" # if -main is specified. # # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # Please add additional copyright information _after_ the line containing # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # # ROCK Linux: rock-src/misc/archive/fmnewpackage.sh # ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. A copy of the GNU General Public # License can be found at Documentation/COPYING. # # Many people helped and are helping developing ROCK Linux. Please # have a look at http://www.rocklinux.org/ and the Documentation/TEAM # file for details. # # --- ROCK-COPYRIGHT-NOTE-END --- # extract_xml_name() { local tmp="`tr -d "\012" < $2 | grep $3 | sed "s,.*<$3>\([^<]*\)<.*,\1," | sed 's, ,\n[T] ,g' | sed 's,^\[T\] $,,'`" eval "$1=\"\$tmp\"" } get_download() { local location download_file="" download_url="" set -x for arg; do if curl -I -f "$arg" -o "header.log"; then location="`grep Location: header.log | sed 's,Location:[ ]\([.0-9A-Za-z-:/% ]*\).*,\1,'`" download_file="`basename $location`" download_url="`dirname $location`/" rm -f header.log set +x return fi done set +x rm -f header.log } read_fm_config() { local fmname=$1 curl_options="" #--disable-epsv if curl -w '\rFinished downloading %{size_download} bytes in %{time_total} seconds (%{speed_download} bytes/sec). \n' -f --progress-bar $resume $curl_options "http://freshmeat.net/projects-xml/$fmname/$fmname.xml" -o "$fmname.xml"; then extract_xml_name project $fmname.xml projectname_full extract_xml_name title $fmname.xml desc_short extract_xml_name desc $fmname.xml desc_full extract_xml_name url $fmname.xml url_project_page extract_xml_name status $fmname.xml branch_name extract_xml_name license $fmname.xml license extract_xml_name version $fmname.xml latest_version extract_xml_name url_tbz $fmname.xml url_bz2 extract_xml_name url_tgz $fmname.xml url_tgz extract_xml_name url_zip $fmname.xml url_zip extract_xml_name url_cvs $fmname.xml url_cvs get_download $url_tbz $url_tgz $url_zip #@FIXME $url_cvs #cleanup some variables case "$status" in Alpha|Beta|Gamma|Stable) ;; *) status="TODO: Unknown ($status)" ;; esac case "$license" in *GPL*Library*) license=LGPL ;; *GPL*Documentation*) license=FDL ;; *GPL*) license=GPL ;; *Mozilla*Public*) license=MPL ;; *MIT*) license=MIT ;; *BSD*) license=BSD ;; *) license="TODO: Unknown ($license)" ;; esac rm -f $fmname.xml else return 1 fi } if [ "$1" == "-main" ] ; then create_main=1 shift fi if [ $# -lt 2 -o $# -gt 2 ] ; then cat <<-EEE Usage: $0