From ac2c2d7ed7af2c380a6ae17b2c7f39b4e93a34af Mon Sep 17 00:00:00 2001 From: "Juergen \"George\" Sawinski" Date: Wed, 27 Aug 2003 15:36:23 +0000 Subject: [PATCH] Juergen Sawinski: [rock-linux] misc/archive/fmnewpackage.sh git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@1209 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- Documentation/Developers/CHANGELOG-RENE | 2 +- misc/archive/fmnewpackage.sh | 259 ++++++++++++++++++++++++ 2 files changed, 260 insertions(+), 1 deletion(-) create mode 100644 misc/archive/fmnewpackage.sh diff --git a/Documentation/Developers/CHANGELOG-RENE b/Documentation/Developers/CHANGELOG-RENE index 6567b14bd..5639bcb55 100644 --- a/Documentation/Developers/CHANGELOG-RENE +++ b/Documentation/Developers/CHANGELOG-RENE @@ -1,7 +1,7 @@ *) 2003-08-27 (2.0.0-rc1 - 2.0.0-rc2) - - Juergen Sawinski: bison and coda (yacc C++ fix) + - Juergen Sawinski: bison and coda (yacc C++ fix) and added fmnewpackage.sh *) 2003-08-26 (2.0.0-rc1 - 2.0.0-rc2) diff --git a/misc/archive/fmnewpackage.sh b/misc/archive/fmnewpackage.sh new file mode 100644 index 000000000..f0349afb4 --- /dev/null +++ b/misc/archive/fmnewpackage.sh @@ -0,0 +1,259 @@ +#!/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/newpackage.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="`grep $3 $2 | sed "s,.*<$3>\([^<]*\)<.*,\1,"`" + 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