Author: ludovicc-guest Date: 2009-04-04 11:16:59 +0000 (Sat, 04 Apr 2009) New Revision: 8179
Added: trunk/maven-repo-helper/src/main/share/mh_lib.sh Modified: trunk/maven-repo-helper/debian/changelog trunk/maven-repo-helper/debian/control trunk/maven-repo-helper/debian/rules trunk/maven-repo-helper/src/main/bin/mh_cleanpom trunk/maven-repo-helper/src/main/bin/mh_genrules trunk/maven-repo-helper/src/main/bin/mh_installjar trunk/maven-repo-helper/src/main/bin/mh_installpom trunk/maven-repo-helper/src/main/bin/mh_installpoms trunk/maven-repo-helper/src/main/bin/mh_lspoms trunk/maven-repo-helper/src/main/bin/mvn-repo trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/POMCleaner.java Log: * Add doc and man pages, * Use a library to parse shell script args Modified: trunk/maven-repo-helper/debian/changelog =================================================================== --- trunk/maven-repo-helper/debian/changelog 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/debian/changelog 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,4 +1,4 @@ -maven-repo-helper (0.1) unstable; urgency=low +maven-repo-helper (0.1-0ubuntu1~ppa19) jaunty; urgency=low * Initial release. (Closes: #521947) Modified: trunk/maven-repo-helper/debian/control =================================================================== --- trunk/maven-repo-helper/debian/control 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/debian/control 2009-04-04 11:16:59 UTC (rev 8179) @@ -3,7 +3,7 @@ Priority: optional Maintainer: Debian Java Maintainers <[email protected]> Uploaders: Ludovic Claude <[email protected]> -Build-Depends: debhelper (>= 5), cdbs, default-jdk, ant, maven-ant-helper +Build-Depends: debhelper (>= 5), cdbs, default-jdk, ant, maven-ant-helper, help2man Standards-Version: 3.8.1 Vcs-Bzr: lp:~ludovicc/maven-packaging-support/maven-repo-helper Vcs-Browser: http://bazaar.launchpad.net/~ludovicc/maven-packaging-support/maven-repo-helper/files Modified: trunk/maven-repo-helper/debian/rules =================================================================== --- trunk/maven-repo-helper/debian/rules 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/debian/rules 2009-04-04 11:16:59 UTC (rev 8179) @@ -11,6 +11,24 @@ DEB_ANT_BUILDFILE := ./debian/build.xml DEB_ANT_ARGS := -Dpackage=$(PACKAGE) -Dversion=$(VERSION) +# Generation of man pages +SCRIPTS := $(wildcard src/main/bin/mh_*) +MAN_PAGES := $(addprefix debian/tmp/doc/,$(addsuffix .1, $(notdir $(SCRIPTS)))) +debian/tmp/mh_lib.sh : src/main/share/mh_lib.sh + mkdir -p debian/tmp + cp src/main/share/mh_lib.sh debian/tmp/mh_lib.sh +debian/tmp/mh_% : src/main/bin/mh_% debian/tmp/mh_lib.sh + mkdir -p debian/tmp + cp $< $@ + perl -i -pe 's,\. /usr/share/maven-repo-helper/mh_lib.sh,\. debian/tmp/mh_lib.sh,' $@ + chmod +x $@ +debian/tmp/doc/mh_%.1 : debian/tmp/mh_% + mkdir -p debian/tmp/doc + -grep -q '^#!/bin/bash' $< && help2man -N -o $@ $< + -grep -q '^#!/usr/bin/perl' $< && pod2man $< > $@ +man-pages: $(MAN_PAGES) +build/$(PACKAGE):: man-pages + binary-post-install/$(PACKAGE):: dh_install -p$(PACKAGE) build/$(PACKAGE)-$(VERSION).jar /usr/share/java dh_install -p$(PACKAGE) src/main/bin /usr @@ -18,5 +36,8 @@ dh_link -p$(PACKAGE) /usr/share/java/$(PACKAGE)-$(VERSION).jar /usr/share/java/$(PACKAGE).jar dh_link -p$(PACKAGE) /usr/share/$(PACKAGE)/postinst.tmpl /usr/share/debhelper/autoscripts/postinst-maven-repo dh_link -p$(PACKAGE) /usr/share/$(PACKAGE)/postrm.tmpl /usr/share/debhelper/autoscripts/postrm-maven-repo + dh_installman $(MAN_PAGES) - +$(SCRIPTS): + help2man $(basename ) + Modified: trunk/maven-repo-helper/src/main/bin/mh_cleanpom =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_cleanpom 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mh_cleanpom 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,19 +1,51 @@ -#!/bin/bash +#!/bin/bash -- -CLEAN_ARGS='' -if [ "$1" = "-d" ]; then - CLEAN_ARGS=$1 - shift +. /usr/share/maven-repo-helper/mh_lib.sh + +syntax() +{ + echo -e "Usage: mh_cleanpom [option]... [pom] [target] [pom-props] [versions-props]" + echo -e "Cleans the POM and prepare it for inclusion in the Maven repository." + echo -e "Also extracts some information from the POM." + echo -e "" + echo -e "Where" + echo -e "\t[pom] is the location of the POM file to clean." + echo -e "\t Default to pom.xml or debian/pom.xml" + echo -e "\t[target] is where the cleaned POM is written to." + echo -e "\t Default to debian/tmp/pom.xml" + echo -e "\t[pom-props] is where the POM properties file will be written." + echo -e "\t Default to debian/tmp/pom.properties" + echo -e "\t[versions-props] is where the versions properties file will be written." + echo -e "\t Default to debian/tmp/versions.properties" + echo -e "Options:" + echo -e "\t-h --help: show this text" + echo -e "\t-V --version: show the version" + echo -e "\t-d --debian-parent: force the cleaned POM to inherit from" + echo -e "\t org.debian:debian-parent:1.0-SNAPSHOT" + echo -e "\t-s<spec> --spec=<spec>: gives the location of the Maven spec file for" + echo -e "\t special properties. Optional, the default location is" + echo -e "\t debian/maven.spec" + echo -e "\t-v --verbose: show more information while running" + echo -e "\t-n --no-act: don't actually do anything, just print the results" + exit 1 +} + +ARGS="d debian-parent s spec v verbose n no-act" parseargs "$@" + +if [ "$ARGC" -lt "1" ]; then + syntax fi -if [ "$1" = "--debian-parent" ]; then - CLEAN_ARGS=$1 - shift -fi -POM=$1 -TARGET=$2 -POM_PROPS=$3 -VERSIONS_PROPS=$4 -SPEC=$5 + +DEBIANPARENT=$(getarg d debian-parent) +SPEC=$(getarg s spec) +SPEC=${SPEC:-debian/maven.spec} +VERBOSE=$(getarg v verbose) +NOACT=$(getarg n no-act) +POM="${ARGV[0]}" +TARGET="${ARGV[1]:-debian/tmp/pom.xml}" +POM_PROPS="${ARGV[2]:-debian/tmp/pom.properties}" +VERSIONS_PROPS="${ARGV[3]:-debian/tmp/versions.properties}" + if [ -z "$POM" ]; then if [ -f debian/pom.xml ]; then POM="debian/pom.xml" @@ -21,19 +53,10 @@ POM="pom.xml" fi fi -if [ -z "$TARGET" ]; then - TARGET="debian/tmp/pom.xml" + +CLEAN_ARGS="${VERBOSE:+--verbose} ${DEBIANPARENT:+--debian-parent}" + +if [ -z "$NOACT" ]; then + java -cp /usr/share/java/maven-repo-helper.jar org.debian.maven.repo.POMCleaner $CLEAN_ARGS $POM $TARGET $POM_PROPS $VERSIONS_PROPS $SPEC fi -if [ -z "$POM_PROPS" ]; then - POM_PROPS="debian/tmp/pom.properties" -fi -if [ -z "$VERSIONS_PROPS" ]; then - VERSIONS_PROPS="debian/tmp/versions.properties" -fi -if [ -z "$SPEC" ]; then - if [ -f debian/maven.spec ]; then - SPEC="debian/maven.spec" - fi -fi -java -cp /usr/share/java/maven-repo-helper.jar org.debian.maven.repo.POMCleaner $CLEAN_ARGS $POM $TARGET $POM_PROPS $VERSIONS_PROPS $SPEC Modified: trunk/maven-repo-helper/src/main/bin/mh_genrules =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_genrules 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mh_genrules 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,28 +1,31 @@ -#!/bin/bash -# Generate some of the build and installation scripts +#!/bin/bash -- -USE_ANT=false -if [ "$1" = "-a" ]; then - USE_ANT=true - shift -fi -if [ "$1" = "--use-ant" ]; then - USE_ANT=true - shift -fi +. /usr/share/maven-repo-helper/mh_lib.sh -PACKAGE=$1 +syntax() +{ + echo -e "Usage: mh_genrules [option]... [package]" + echo -e "Generate the rules file, at least partially." + echo -e "Also extracts some information from the POM." + echo -e "" + echo -e "Where" + echo -e "\t[package] is the name of the binary package," + echo -e "\t e.g. libcommons-lang-java" + echo -e "Options:" + echo -e "\t-h --help: show this text" + echo -e "\t-V --version: show the version" + echo -e "\t-a --use-ant: add code to use Ant to build the sources" + exit 1 +} -if [ -z "$PACKAGE" ]; then - echo "Syntax:" - echo "mh_genrules <binary package>" - exit 1 -fi +ARGS="a use-ant" parseargs "$@" -if [ ! -z "${PACKAGE##-p}" ]; then - PACKAGE=${PACKAGE##-p} +if [ "$ARGC" -lt "1" ]; then + syntax fi +PACKAGE="${ARGV[0]}" + VERSION_PROPERTIES_FILE="debian/tmp/versions.properties" mh_lspoms $PACKAGE > /dev/null @@ -73,13 +76,13 @@ if [[ "$POM" = "pom.xml" || "$POM" = "debian/pom.xml" ]]; then grep "<packaging>\s*pom" $POM > /dev/null if [ $? != 0 ]; then - echo -e "\tmh_installjar -p$BIN_PACKAGE $POM build/\$(PACKAGE)-\$(VERSION).jar usr/share/java/\$(PACKAGE)-\$(VERSION).jar usr/share/java/\$(PACKAGE).jar" + echo -e "\tmh_installjar -p$BIN_PACKAGE -l $POM build/\$(PACKAGE)-\$(VERSION).jar" fi elif [ ! -z "$POM" ]; then BASENAME=$(basename $(dirname $POM)) grep "<packaging>\s*pom" $POM > /dev/null if [ $? != 0 ]; then - echo -e "\tmh_installjar -p$BIN_PACKAGE $POM $BASENAME/build/$BASENAME-\$(VERSION).jar usr/share/java/$BASENAME-\$(VERSION).jar usr/share/java/$BASENAME.jar" + echo -e "\tmh_installjar -p$BIN_PACKAGE -l $POM $BASENAME/build/$BASENAME-\$(VERSION).jar" fi fi done Modified: trunk/maven-repo-helper/src/main/bin/mh_installjar =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_installjar 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mh_installjar 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,56 +1,92 @@ -#!/bin/bash +#!/bin/bash -- set -e -CLEAN_ARGS='' -SPEC='' +. /usr/share/maven-repo-helper/mh_lib.sh -if [ "$1" = "-d" ]; then - CLEAN_ARGS=$1 - shift -fi -if [ "$1" = "--debian-parent" ]; then - CLEAN_ARGS=$1 - shift -fi -if [ "$1" = "-s" ]; then - shift - SPEC=$1 - shift -fi -if [ "$1" = "--spec" ]; then - shift - SPEC=$1 - shift -fi +syntax() +{ + echo -e "Usage: mh_installjar [option]... [pom] [jar] [link]..." + echo -e "Installs the jar file in /usr/share/maven-repo, at the correct location for" + echo -e "Maven." + echo -e "It can also create additional links to the jar, usually placed in" + echo -e "/usr/share/java." + echo -e "" + echo -e "Where" + echo -e "\t[pom] is the location of the POM associated with the jar to install." + echo -e "\t GroupId, artifactId and version will be extracted from this file." + echo -e "\t[jar] is the path to the jar to install, usually located in the build" + echo -e "\t folder." + echo -e "\t[link] is an additional link to the jar to install, usually there should" + echo -e "\t be a link to usr/share/java/$jar.jar and" + echo -e "\t usr/share/java/$jar-$version.jar to comply with the Java packaging" + echo -e "\t guidelines. Note that there is no need to specify those particular" + echo -e "\t links if the --java-lib option is used." + echo -e "Options:" + echo -e "\t-h --help: show this text" + echo -e "\t-V --version: show the version" + echo -e "\t-p<package> --package=<package>: package to act on " + echo -e "\t-s<spec> --spec=<spec>: gives the location of the Maven spec file for" + echo -e "\t special properties. Optional, the default location is" + echo -e "\t debian/maven.spec" + echo -e "\t-l --java-lib: Optional, if given it will create additional links into " + echo -e "\t /usr/share/java to comply with the Java specification. More precisely," + echo -e "\t the links created will be /usr/share/java/$name-$version.jar and" + echo -e "\t /usr/share/java/$name.jar" + echo -e "\t-n<name> --name=<name>: Optional, the name to use when installing the" + echo -e "\t library in /usr/share/java when --java-lib is used." + echo -e "\t Defaults to the artifact id found in the POM." + echo -e "\t-r<version> --version=<version>: Optional, the version to use when" + echo -e "\t installing the library in /usr/share/java when --java-lib is used." + echo -e "\t Defaults to the version found in the POM." + echo -e "\t-v --verbose: show more information while running" + echo -e "\t-n --no-act: don't actually do anything, just print the results" + exit 1 +} -PACKAGE=$1 +ARGS="s spec l java-lib n name r version v verbose n no-act" parseargs "$@" -if [ ! -z "${PACKAGE##-p}" ]; then - PACKAGE=${PACKAGE##-p} +if [ "$ARGC" -lt "2" ]; then + syntax fi -POM=$2 -JAR=$3 +SPEC=$(getarg s spec) +SPEC=${SPEC:-debian/maven.spec} +PACKAGE=$(getarg p package) +PACKAGE=${PACKAGE:?"Package parameter (-p) is mandatory"} +JAVALIB=$(getarg l java-lib) +NAME=$(getarg l java-lib) +VERBOSE=$(getarg v verbose) +NOACT=$(getarg n no-act) +POM="${ARGV[0]}" +JAR="${ARGV[1]}" -if [ -z "$SPEC" ]; then - if [ -f debian/maven.spec ]; then - SPEC="debian/maven.spec" - fi -fi +DH_OPTS="${VERBOSE:+-v} ${NOACT:+-n}" mkdir -p debian/tmp 2> /dev/null mh_cleanpom $CLEAN_ARGS $POM debian/tmp/pom.xml debian/tmp/pom.properties debian/tmp/notused.properties $SPEC source debian/tmp/pom.properties GROUP_PATH=$(echo $GROUP_ID | tr . / ) + +# Install the jar in the Maven repository cp $JAR debian/tmp/${ARTIFACT_ID}-${VERSION}.jar -dh_install -p${PACKAGE} --sourcedir=debian/tmp ${ARTIFACT_ID}-${VERSION}.jar \ +dh_install $DH_OPTS -p${PACKAGE} --sourcedir=debian/tmp ${ARTIFACT_ID}-${VERSION}.jar \ usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION} -while [ ! -z "$4" ]; do - LINK_JAR=$4 - shift - dh_link -p${PACKAGE} usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION}/${ARTIFACT_ID}-${VERSION}.jar \ +# Create the additional links +for (( i=2; i < $ARGC; i++ )); do + LINK_JAR="${ARGV[i]}" + dh_link $DH_OPTS -p${PACKAGE} usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION}/${ARTIFACT_ID}-${VERSION}.jar \ $LINK_JAR; done +if [ -n "$JAVALIB" ]; then + JAR_NAME=$(getarg n name) + JAR_NAME=${JAR_NAME:-$ARTIFACT_ID} + JAR_VERSION=$(getarg r version) + JAR_VERSION=${JAR_VERSION:-$VERSION} + dh_link $DH_OPTS -p${PACKAGE} usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION}/${ARTIFACT_ID}-${VERSION}.jar \ + usr/share/java/$JAR_NAME.jar; + dh_link $DH_OPTS -p${PACKAGE} usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION}/${ARTIFACT_ID}-${VERSION}.jar \ + usr/share/java/$JAR_NAME-$JAR_VERSION.jar; +fi Modified: trunk/maven-repo-helper/src/main/bin/mh_installpom =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_installpom 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mh_installpom 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,54 +1,62 @@ -#!/bin/bash +#!/bin/bash -- set -e -CLEAN_ARGS='' -SPEC='' +. /usr/share/maven-repo-helper/mh_lib.sh -if [ "$1" = "-d" ]; then - CLEAN_ARGS=$1 - shift -fi -if [ "$1" = "--debian-parent" ]; then - CLEAN_ARGS=$1 - shift -fi -if [ "$1" = "-s" ]; then - shift - SPEC=$1 - shift -fi -if [ "$1" = "--spec" ]; then - shift - SPEC=$1 - shift -fi +syntax() +{ + echo -e "Usage: mh_installpom [option]... [pom]" + echo -e "Installs the POM file in /usr/share/maven-repo, at the correct location for" + echo -e "Maven." + echo -e "Before installing the POM, it prepares it with mh_cleanpom." + echo -e "" + echo -e "debian/maven.spec is used to alter the version properties for the library and" + echo -e "its dependencies." + echo -e "" + echo -e "Prefer to use mh_installpoms as it reuses the information in" + echo -e "debian/\$package.poms and avoids repetition." + echo -e "" + echo -e "Where" + echo -e "\t[pom] is the location of the POM associated with the jar to install." + echo -e "\t GroupId, artifactId and version will be extracted from this file." + echo -e "Options:" + echo -e "\t-h --help: show this text" + echo -e "\t-V --version: show the version" + echo -e "\t-p<package> --package=<package>: package to act on " + echo -e "\t-d --debian-parent: force the cleaned POM to inherit from" + echo -e "\t org.debian:debian-parent:1.0-SNAPSHOT" + echo -e "\t-s<spec> --spec=<spec>: gives the location of the Maven spec file for" + echo -e "\t special properties. Optional, the default location is" + echo -e "\t debian/maven.spec" + echo -e "\t-v --verbose: show more information while running" + echo -e "\t-n --no-act: don't actually do anything, just print the results" + exit 1 +} -PACKAGE=$1 +ARGS="p package d debian-parent s spec v verbose n no-act" parseargs "$@" -if [ ! -z "${PACKAGE##-p}" ]; then - PACKAGE=${PACKAGE##-p} +if [ "$ARGC" -lt "1" ]; then + syntax fi -POM=$2 -INSTALLED_JAR=$3 +DEBIANPARENT=$(getarg d debian-parent) +SPEC=$(getarg s spec) +SPEC=${SPEC:-debian/maven.spec} +PACKAGE=$(getarg p package) +PACKAGE=${PACKAGE:?"Package parameter (-p) is mandatory"} +VERBOSE=$(getarg v verbose) +NOACT=$(getarg n no-act) +POM="${ARGV[0]}" -if [ -z "$SPEC" ]; then - if [ -f debian/maven.spec ]; then - SPEC="debian/maven.spec" - fi -fi +CLEAN_ARGS="${DEBIANPARENT:+--debian-parent}" +DH_OPTS="${VERBOSE:+-v} ${NOACT:+-n}" mkdir -p debian/tmp 2> /dev/null -mh_cleanpom $CLEAN_ARGS $POM debian/tmp/pom.xml debian/tmp/pom.properties debian/tmp/versions.properties $SPEC +mh_cleanpom $DH_OPTS $CLEAN_ARGS --spec=$SPEC $POM debian/tmp/pom.xml debian/tmp/pom.properties debian/tmp/versions.properties source debian/tmp/pom.properties GROUP_PATH=$(echo $GROUP_ID | tr . / ) mv debian/tmp/pom.xml debian/tmp/${ARTIFACT_ID}-${VERSION}.pom -dh_install -p${PACKAGE} --sourcedir=debian/tmp ${ARTIFACT_ID}-${VERSION}.pom \ +dh_install $DH_OPTS -p${PACKAGE} --sourcedir=debian/tmp ${ARTIFACT_ID}-${VERSION}.pom \ usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION} - -if [ ! -z "$INSTALLED_JAR" ]; then - dh_link -p${PACKAGE} $INSTALLED_JAR \ - usr/share/maven-repo/${GROUP_PATH}/${ARTIFACT_ID}/${VERSION}/${ARTIFACT_ID}-${VERSION}.jar; -fi Modified: trunk/maven-repo-helper/src/main/bin/mh_installpoms =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_installpoms 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mh_installpoms 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,15 +1,40 @@ -#!/bin/bash +#!/bin/bash -- set -e -PACKAGE=$1 +. /usr/share/maven-repo-helper/mh_lib.sh -if [ ! -z "${PACKAGE##-p}" ]; then - PACKAGE=${PACKAGE##-p} -fi +syntax() +{ + echo -e "Usage: mh_installpoms [option]..." + echo -e "Reads the file debian/\$package.poms and installs each POM file" + echo -e "listed in the .poms file." + echo -e "" + echo -e "Options:" + echo -e "\t-h --help: show this text" + echo -e "\t-V --version: show the version" + echo -e "\t-p<package> --package=<package>: package to act on " + echo -e "\t-s<spec> --spec=<spec>: gives the location of the Maven spec file for" + echo -e "\t special properties. Optional, the default location is" + echo -e "\t debian/maven.spec" + echo -e "\t-v --verbose: show more information while running" + echo -e "\t-n --no-act: don't actually do anything, just print the results" + exit 1 +} +ARGS="p package s spec v verbose n no-act" parseargs "$@" + +SPEC=$(getarg s spec) +SPEC=${SPEC:-debian/maven.spec} +PACKAGE=$(getarg p package) +PACKAGE=${PACKAGE:?"Package parameter (-p) is mandatory"} +VERBOSE=$(getarg v verbose) +NOACT=$(getarg n no-act) + +DH_OPTS="${VERBOSE:+-v} ${NOACT:+-n}" + cat debian/$PACKAGE.poms | while read POM OPTS; do if [ ! -z "$POM" ]; then - mh_installpom $OPTS -p$BIN_PACKAGE $POM + mh_installpom $DH_OPTS $OPTS -p$PACKAGE --spec=$SPEC $POM fi done Modified: trunk/maven-repo-helper/src/main/bin/mh_lspoms =================================================================== --- trunk/maven-repo-helper/src/main/bin/mh_lspoms 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mh_lspoms 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,32 +1,48 @@ -#!/bin/bash +#!/bin/bash -- -VERBOSE=true -if [ "$1" = "-q" ]; then - VERBOSE=false - shift -fi +. /usr/share/maven-repo-helper/mh_lib.sh -PACKAGE=$1 +syntax() +{ + echo -e "Usage: mh_lspoms [option]... [package]" + echo -e "Looks for all POM files defined in the source of the project." + echo -e "" + echo -e "Where" + echo -e "\t[package] is the name of the binary package," + echo -e "\t e.g. libcommons-lang-java" + echo -e "Options:" + echo -e "\t-h --help: show this text" + echo -e "\t-V --version: show the version" + echo -e "" + echo -e "You need to execute it on the unpacked origianl source tree, merged with the" + echo -e "debian/ folder. It will create the file debian/<binary package>.poms which" + echo -e "contains all the POMs to deploy to the Maven repository and is used by" + echo -e "mh_mavenrepo and mh_installpoms." + echo -e "" + echo -e "The contents of debian/<binary package>.poms should be:" + echo -e "\t* one POM file location per line," + echo -e "\t* optionaly, the location is followed by the option --debian-parent" + echo -e "\t to indicate that this POM should inherit directly from the Debian" + echo -e "\t parent POM." + echo -e "" + echo -e "All POMs which are installed in the Maven repository should inherit either" + echo -e "directly or indirectly from org.debian:debian-parent:1.0-SNAPSHOT" + exit 1 +} -if [ -z "$PACKAGE" ]; then - echo "Syntax:" - echo "mh_lspoms <binary package>" - exit 1 -fi +ARGS="" parseargs "$@" -if [ ! -z "${PACKAGE##-p}" ]; then - PACKAGE=${PACKAGE##-p} +if [ "$ARGC" -lt "1" ]; then + syntax fi +PACKAGE="${ARGV[0]}" + if [ -e debian/$PACKAGE.poms ]; then - if $VERBOSE ; then - echo debian/$PACKAGE.poms already exist. Please delete it if you want to regenerate it. - fi + echo debian/$PACKAGE.poms already exist. Please delete it if you want to regenerate it. else mkdir -p debian find . -path '*/.*' -prune -o -path './debian/tmp' -prune -o -type f -name 'pom.xml' -print | sed s,./,, | sed -e's,^\(debian/pom\.xml\|pom\.xml\),\1 --debian-parent,' > debian/$PACKAGE.poms - if $VERBOSE ; then - echo The list of POM files is now in debian/$PACKAGE.poms - fi + echo The list of POM files is now in debian/$PACKAGE.poms fi Modified: trunk/maven-repo-helper/src/main/bin/mvn-repo =================================================================== --- trunk/maven-repo-helper/src/main/bin/mvn-repo 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/bin/mvn-repo 2009-04-04 11:16:59 UTC (rev 8179) @@ -1,2 +1,2 @@ -#!/bin/sh +#!/bin/sh -- java -cp /usr/share/java/maven-repo-helper.jar org.debian.maven.repo.DebianPOM "$@" Modified: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/POMCleaner.java =================================================================== --- trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/POMCleaner.java 2009-04-02 00:35:50 UTC (rev 8178) +++ trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/POMCleaner.java 2009-04-04 11:16:59 UTC (rev 8179) @@ -393,6 +393,7 @@ System.out.println("Usage: [option] original-pom target-file versions-properties [special-dependencies]"); System.out.println(""); System.out.println("Options:"); + System.out.println(" -v, --verbose: be extra verbose"); System.out.println(" -d, --debian-parent: target POM will inherit directly from the Debian parent POM"); System.out.println(""); System.out.println("Arguments:"); @@ -435,6 +436,11 @@ POMCleaner cleaner = new POMCleaner(); Collection specialCases = new ArrayList(); int i = inc(-1, args); + boolean verbose = false; + if ("--verbose".equals(args[0]) || "-v".equals(args[0])) { + verbose = true; + i = inc(i, args); + } boolean inheritFromDebian = false; if ("--debian-parent".equals(args[0]) || "-d".equals(args[0])) { inheritFromDebian = true; @@ -448,7 +454,9 @@ String specialDependencies = args[i++]; File sdFile = new File(specialDependencies); if (!sdFile.exists()) { - System.err.println("Cannot find file: " + sdFile); + if (verbose) { + System.err.println("Cannot find file: " + sdFile); + } } else { try { LineNumberReader lnr = new LineNumberReader(new FileReader(sdFile)); Added: trunk/maven-repo-helper/src/main/share/mh_lib.sh =================================================================== --- trunk/maven-repo-helper/src/main/share/mh_lib.sh (rev 0) +++ trunk/maven-repo-helper/src/main/share/mh_lib.sh 2009-04-04 11:16:59 UTC (rev 8179) @@ -0,0 +1,64 @@ +# This is included by mh_* and contains common functions +# +# - argument parsing +# - package selection +# + +VERSION=0.2 + +parseargs() +{ + ARGC=0 + ARGV=() + while [ -n "$1" ]; do + if [ "-V" = "$1" ] || [ "--version" = "$1" ]; then + echo "Maven Repo Helper version $VERSION" + exit 0 + elif [ "-h" = "$1" ] || [ "--help" = "$1" ]; then + syntax + elif [ "-" = "${1:1:1}" ]; then + # long opt + optn=$(echo $1 | sed -n 's/^--\([^=]*\)\(=.*\)*$/\1/p' | sed 's/-/_/g') + if [ -z "$optn" ] || ! echo $ARGS | sed 's/-/_/g' | grep $optn >/dev/null; then + echo "Invalid option: $optn" + syntax + fi + optv=$(echo $1 | sed -n 's/^[^=]*=\(.*\)$/\1/p') + if [ -z "$optv" ]; then + optv=true + fi + export opt_$optn="$optv" + elif [ "-" = "${1:0:1}" ]; then + # short opt + optn="${1:1:1}" + if [ -z "$optn" ] || ! echo $ARGS | sed 's/-/_/g' | grep $optn >/dev/null; then + echo "Invalid option: $optn" + syntax + fi + optv="${1:2}" + if [ -z "$optv" ]; then + optv=true + fi + export opt_$optn="$optv" + else + # not-opt arg + ARGV[$ARGC]="$1" + ARGC=$(( $ARGC + 1 )) + fi + shift + done + export ARGC + export ARGV +} + +getarg() +{ + while [ -n "$1" ]; do + optn=$(echo "opt_$1" | sed 's/-/_/g') + if [ -n "${!optn}" ]; then + echo ${!optn} + return + fi + shift + done +} \ No newline at end of file _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/pkg-java-commits

