From 577a3ff903ac167ceeff8cef27f7ecc9023d8fd4 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Fri, 1 Jun 2007 08:36:16 +0000 Subject: [PATCH] Added support for passing extra parameters for autodist and autodist hook scripts. --- apps/autodist/CHANGES | 8 ++++ apps/autodist/autodist.in | 35 +++++++++-------- apps/autodist/autodist.spec.in | 2 +- apps/autodist/doc/autodist.1.in | 2 +- apps/autodist/doc/autodist.texi | 68 +++++++++++++++++++++------------ 5 files changed, 74 insertions(+), 41 deletions(-) diff --git a/apps/autodist/CHANGES b/apps/autodist/CHANGES index 36a0f14..a14e56a 100644 --- a/apps/autodist/CHANGES +++ b/apps/autodist/CHANGES @@ -1,3 +1,11 @@ +Thu May 31 23:34:00 EEST 2007 Pekka Riikonen + + * Autodist 1.3.2. + + * Added support for providing extra parameters to autodist that + are passed to the hook scripts. User can specify whatever + extra parameter they want. + Wed Feb 21 15:45:50 EET 2007 Pekka Riikonen * Autodist 1.3.1. diff --git a/apps/autodist/autodist.in b/apps/autodist/autodist.in index 8b30e67..517aae7 100755 --- a/apps/autodist/autodist.in +++ b/apps/autodist/autodist.in @@ -2,7 +2,7 @@ # # Author: Pekka Riikonen # -# Copyright (C) 2005 Pekka Riikonen +# Copyright (C) 2005 - 2007 Pekka Riikonen # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -996,6 +996,7 @@ ad_makedist() distribution=`grep "dist:" < autodist.dist | cut -d: -f2` || exit 1 dist_version=`grep "ver:" < autodist.dist | cut -d: -f2` || exit 1 am_distdir=`grep "distdir:" < autodist.dist | cut -d: -f2` || exit 1 + params=`grep "params:" < autodist.dist | cut -d: -f2` || exit 1 ad_parse_distribution $distribution false ad_log " Distribution: $distribution $dist_version" ad_log " Destination directory: $am_distdir" @@ -1007,7 +1008,7 @@ ad_makedist() fi # Run pre-dist-hooks - ad_run_dist_hooks "$pre_dist_hooks" + ad_run_dist_hooks "$pre_dist_hooks" "$params" # Create distribution directory ad_debug "Creating distribution directory $am_distdir" @@ -1019,7 +1020,7 @@ ad_makedist() fi # Run pre-process-dist-hooks - ad_run_dist_hooks "$pre_p_dist_hooks" + ad_run_dist_hooks "$pre_p_dist_hooks" "$params" # Run excludes ad_dist_excludes "$excludes" true @@ -1061,7 +1062,7 @@ ad_makedist() ad_process_noprocess false # Run post-process_dist-hooks - ad_run_dist_hooks "$post_p_dist_hooks" + ad_run_dist_hooks "$post_p_dist_hooks" "$params" # Make distribution sane ad_makedist_makesane @@ -1092,7 +1093,7 @@ ad_makedist() rm -f $am_distdir.tar # Run post-dist-hooks - ad_run_dist_hooks "$post_dist_hooks" + ad_run_dist_hooks "$post_dist_hooks" "$params" # Cleanup rm -rf $am_distdir @@ -1775,7 +1776,7 @@ ad_process() # # Run hooks # -# Arguments: ad_run_hooks +# Arguments: ad_run_hooks # ad_run_hooks() { @@ -1790,8 +1791,8 @@ ad_run_hooks() if test '!' -f $i; then ad_fatal "Hook script $i does not exist" fi - ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\"" - sh $i "$distribution" "$dist_version" "$package" || exit 1 + ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\" \"$2\"" + sh $i "$distribution" "$dist_version" "$package" "$2" || exit 1 done ad_log "" @@ -1801,7 +1802,7 @@ ad_run_hooks() # # Run dist hooks # -# Arguments: ad_run_dist_hooks +# Arguments: ad_run_dist_hooks # ad_run_dist_hooks() { @@ -1817,8 +1818,8 @@ ad_run_dist_hooks() ad_fatal "Dist hook script $i does not exist" fi - ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\" \"$am_distdir\"" - sh $i "$distribution" "$dist_version" "$package" "$am_distdir" || exit 1 + ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\" \"$am_distdir\" \"$2\"" + sh $i "$distribution" "$dist_version" "$package" "$am_distdir" "$2" || exit 1 done ad_log "" @@ -1828,7 +1829,7 @@ ad_run_dist_hooks() ############################################################################### # Autodist code -usage="Usage: autodist [options] [distribution] [version]" +usage="Usage: autodist [options] [distribution] [version] [params]" help="\ Autodist prepares source tree for configuration, compilation and distribution. Generates Automake.am files from Automake.ad files, @@ -1934,7 +1935,7 @@ while test $# -gt 0; do echo "@PACKAGE@ (@PACKAGE_NAME@) $ver" 1>&2; echo "Written by Pekka Riikonen" 1>&2; echo 1>&2; - echo "Copyright (C) 2004 - 2005 SILC Project" 1>&2; + echo "Copyright (C) 2004 - 2007 SILC Project" 1>&2; echo "\ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. " 1>&2; @@ -1993,10 +1994,13 @@ else ad_fatal "DISTDEFS not defined in $distdir/autodist.conf" fi +# Get extra parameters from command line +shift + # # Run pre-hooks # -ad_run_hooks "$pre_hooks" +ad_run_hooks "$pre_hooks" "$@" # # Generate the Makefile.am files from Makefile.ad files @@ -2030,11 +2034,12 @@ ad_debug "Creating autodist.dist" echo "dist:$distfile" > autodist.dist echo "ver:$dist_version" >> autodist.dist echo "distdir:$package-$dist_version" >> autodist.dist +echo "params:$@" >> autodist.dist # # Run post-hooks # -ad_run_hooks "$post_hooks" +ad_run_hooks "$post_hooks" "$@" ad_log "Source tree processed successfully." ad_debug "Done, now run ./configure and make." diff --git a/apps/autodist/autodist.spec.in b/apps/autodist/autodist.spec.in index f2342cf..4455daa 100644 --- a/apps/autodist/autodist.spec.in +++ b/apps/autodist/autodist.spec.in @@ -1,7 +1,7 @@ Summary: Source distribution management system Name: autodist Version: AUTODIST_VERSION -Release: 0.fc7 +Release: AUTODIST_RELEASE License: BSD Group: Development/Tools URL: http://silcnet.org/software/developers/autodist/ diff --git a/apps/autodist/doc/autodist.1.in b/apps/autodist/doc/autodist.1.in index 90b7312..5d877ba 100644 --- a/apps/autodist/doc/autodist.1.in +++ b/apps/autodist/doc/autodist.1.in @@ -3,7 +3,7 @@ Autodist \- Source distribution management system .SH SYNOPSIS .B autodist -[options] [distribution] [version] +[options] [distribution] [version] [params] .PP .SH DESCRIPTION .PP diff --git a/apps/autodist/doc/autodist.texi b/apps/autodist/doc/autodist.texi index a054dac..cdb4848 100644 --- a/apps/autodist/doc/autodist.texi +++ b/apps/autodist/doc/autodist.texi @@ -821,9 +821,11 @@ Zero or more 'pre-hook' directives may be set for distribution. The 'pre-hook' hook will be run immediately after invoking Autodist to start preparing the source tree for configuration and compilation (@pxref{Preparing source tree, , , , }). -The scripts will get three (3) command line arguments when Autodist -executes the script: distribution name, distribution version and package -name of distribution. The script may use these arguments if it needs them. +The scripts will get at least three (3) command line arguments when +Autodist executes the script: distribution name, distribution version and +package name of distribution. The script may use these arguments if it +needs them. If user passed any extra parameters to autodist in the +command line they will also be passed to the script as last arguments. @section Directive: post-hook [...] @@ -836,9 +838,11 @@ Zero or more 'post-hook' directives may be set for distribution. The preparing the source three for configuration and compilation (@pxref{Preparing source tree, , , , }). The Autodist will exit after it has run the 'post-hook' scripts. -The scripts will get three (3) command line arguments when Autodist -executes the script: distribution name, distribution version and package -name of distribution. The script may use these arguments if it needs them. +The scripts will get at least three (3) command line arguments when +Autodist executes the script: distribution name, distribution version and +package name of distribution. The script may use these arguments if it +needs them. If user passed any extra parameters to autodist in the +command line they will also be passed to the script as last arguments. @section Directive: pre-process-dist-hook [...] @@ -851,10 +855,12 @@ directives may be set for distribution. The 'pre-process-dist-hook' hook will be run immediately after the Autodist has created the distribution directory but has not yet started any distribution processing. -The scripts will get four (4) command line arguments when Autodist -executes the script: distribution name, distribution version, package -name of distribution and destination distribution directory name. The -script may use these arguments if it needs them. +The scripts will get at least four (4) command line arguments when +Autodist executes the script: distribution name, distribution version, +package name of distribution and destination distribution directory name. +The script may use these arguments if it needs them. If user passed any +extra parameters to autodist in the command line they will also be passed +to the script as last arguments. @section Directive: post-process-dist-hook [...] @@ -868,10 +874,12 @@ defined in one 'post-process-dist-hook' directive. Zero or more has finished processing the destination distribution directory but has not yet created the distribution package. -The scripts will get four (4) command line arguments when Autodist -executes the script: distribution name, distribution version, package -name of distribution and destination distribution directory name. The -script may use these arguments if it needs them. +The scripts will get at least four (4) command line arguments when +Autodist executes the script: distribution name, distribution version, +package name of distribution and destination distribution directory name. +The script may use these arguments if it needs them. If user passed any +extra parameters to autodist in the command line they will also be passed +to the script as last arguments. @section Directive: pre-dist-hook [...] @@ -884,10 +892,12 @@ distribution. The 'pre-dist-hook' hook will be run immediately after the Autodist has started distribution creation, but has not yet created the distribution directory. This hook is run before 'pre-process-dist-hook'. -The scripts will get four (4) command line arguments when Autodist -executes the script: distribution name, distribution version, package -name of distribution and destination distribution directory name. The -script may use these arguments if it needs them. +The scripts will get at least four (4) command line arguments when +Autodist executes the script: distribution name, distribution version, +package name of distribution and destination distribution directory name. +The script may use these arguments if it needs them. If user passed any +extra parameters to autodist in the command line they will also be passed +to the script as last arguments. @section Directive: post-dist-hook [...] @@ -900,10 +910,12 @@ be set for distribution. The 'post-dist-hook' hook will be run immediately after the Autodist has finished creating the distribution package. This is the last hook Autodist runs. -The scripts will get four (4) command line arguments when Autodist -executes the script: distribution name, distribution version, package -name of distribution and destination distribution directory name. The -script may use these arguments if it needs them. +The scripts will get at least four (4) command line arguments when +Autodist executes the script: distribution name, distribution version, +package name of distribution and destination distribution directory name. +The script may use these arguments if it needs them. If user passed any +extra parameters to autodist in the command line they will also be passed +to the script as last arguments. @section Running hooks @@ -1654,6 +1666,7 @@ include doc/nomad define _DIST_NOMAD define _DIST_NOMAD_LIB undef _DIST_CRYPTO +pre-dist-hook nomad-pre-dist-hook @end example @example @@ -1767,11 +1780,18 @@ Then you continue with libfoozbar and Nomad: autodist libfoozbar 1.0.5 makedist -autodist nomad 2.0 +Nomad has also an RPM .spec file that you have written and a pre-dist-hook +that will replace the RPM release version with sed tool with the one you +give as extra parameter to autodist: + +autodist nomad 2.0 0.fc7 makedist @end example -The end results are: 'libfoozbar-1.0.5.tar.gz' and 'nomad-2.0.tar.gz'. +The end results are: 'libfoozbar-1.0.5.tar.gz' and 'nomad-2.0.tar.gz', and +the RPM will have a release version '0.fc7' when you compile the RPM. Any +extra parameter that you pass to autodist will be delivered to your hook +scripts. @page @contents -- 2.24.0