You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
877 lines
22 KiB
877 lines
22 KiB
#!/bin/bash
|
|
#
|
|
# Extract an application from KDE svn, including documentation and translations.
|
|
#
|
|
# Authors: Michael Buesch <mbuesch@freenet.de>
|
|
# Jeroen Wijnhout <Jeroen.Wijnhout@kdemail.net>
|
|
# Sebastian Trueg
|
|
# Aurelien Gateau
|
|
# Klas Kalass
|
|
# License: GPL (http://www.gnu.org/)
|
|
#
|
|
#
|
|
# Directory lay-out of packages
|
|
# Application:
|
|
# + name-version
|
|
# + admin
|
|
# + src
|
|
# + doc
|
|
# + translations
|
|
# + nl
|
|
# + messages
|
|
# + doc
|
|
# + de (etc.)
|
|
#
|
|
# If the --notoplevel parameter is used everything under src is put into the root dir
|
|
#
|
|
# Translations:
|
|
# + nl
|
|
# + messages
|
|
# + doc
|
|
# + de (etc.)
|
|
|
|
COPYRIGHT="2005 Michael Buesch <mbuesch@freenet.de>
|
|
2004-2005 Jeroen Wijnhout <Jeroen.Wijnhout@kdemail.net>
|
|
2003-2004 Sebastian Trueg
|
|
2002 Aurelien Gateau
|
|
2002-2004 Klas Kalass"
|
|
LICENSE="GNU General Public License v2 or later"
|
|
|
|
SCRIPTNAME="createPackage.sh"
|
|
SCRIPTVERSION='$Revision$'
|
|
SCRIPTVERSION="`echo $SCRIPTVERSION | cut -d ' ' -f2`"
|
|
|
|
|
|
function showVersion
|
|
{
|
|
echo "$SCRIPTNAME revision $SCRIPTVERSION"
|
|
}
|
|
|
|
function showHelp
|
|
{
|
|
showVersion
|
|
echo -e "
|
|
Extract an application from KDE svn, including documentation and translations.
|
|
|
|
Copyright $COPYRIGHT
|
|
License: $LICENSE
|
|
|
|
usage:
|
|
$0 -ab <PATH> -a <NAME> [OPTIONS]
|
|
|
|
These parameters are mandatory:
|
|
|
|
-ab|--app-base <PATH> Relative (to svnroot) path to the KDE or extragear module.
|
|
Example:
|
|
trunk/extragear/utils
|
|
If you want to checkout from a branch, you might use:
|
|
branches/foobar/1.2
|
|
|
|
-a|--app <NAME> Name of the application to checkout.
|
|
This is the subdir you want to checkout in --app-base.
|
|
|
|
The following options are available:
|
|
|
|
-d|--svnroot <URL> Base URL of the svn repository.
|
|
svn://anonsvn.kde.org/home/kde is the default.
|
|
|
|
-ib|--i18n-base <PATH> Path to the i18n translations base.
|
|
Default:
|
|
trunk/l10n
|
|
|
|
-is|--i18n-sub <PATH> Path to the i18n files under the
|
|
\$i18n-base/\$LANGUAGE/messages
|
|
directories. Example:
|
|
extragear-office
|
|
|
|
-ids|--i18n-docsub <PATH> Path to the i18n docbook files under the
|
|
\$i18n-base/\$LANGUAGE/docs
|
|
directories. Example:
|
|
kdeextragear-2
|
|
Default:
|
|
path of --i18n-sub
|
|
|
|
--admin <PATH> Path to the /admin/ directory.
|
|
Default:
|
|
trunk/KDE/kde-common/admin
|
|
|
|
-b|--builddir <DIRNAME> Name of the temporary working directory where
|
|
all files will be put. Default is \"./build\"
|
|
|
|
-av|--appversion <VERSION> Version of the application (only for correct
|
|
naming of the tar archives).
|
|
|
|
--nodoc Do not try to get any documentation.
|
|
|
|
--noi18n Do not search for any translations.
|
|
|
|
--split Make separate packages for the application and translations.
|
|
|
|
--package [TYPE] Create tarballs (.tar.gz and/or .tar.bz2).
|
|
You can specify an optional package type: \"gzip\" or \"bzip2\"
|
|
If no type is given, both types will be generated.
|
|
|
|
--packagedir <TARBALLDIR> Place a copy of the packages into TARBALLDIR.
|
|
|
|
--postprocess <SCRIPT> Runs SCRIPT on the package, after all data is gathered, but before
|
|
the tarball is generated. This allows packagers to give the
|
|
\"final touch\" to the package.
|
|
|
|
--pofiles <POFILES> Space seperated list of pofiles this application uses without the extension.
|
|
Defaults to the name of the application.
|
|
|
|
-l|--languages <LANGUAGES> Space seperated list of languages to search for
|
|
translations. If no languages are specified, all
|
|
available languages will be included.
|
|
|
|
-el|--exclude-languages <LANGUAGES> Space seperated list of languages not to include
|
|
in the package.
|
|
|
|
--logfile <FILE> Write all logging information to FILE.
|
|
If FILE is \"no\", no logfile will be created.
|
|
|
|
--notoplevel Do not create an additional src directory. Do not checkout the top level files.
|
|
Use configure.in.in and Makefile.am from the application's root directory.
|
|
|
|
-v|--version Version of this script
|
|
-h|--help This Help"
|
|
}
|
|
|
|
#
|
|
# Some simple helper functions.
|
|
#
|
|
|
|
function printlog
|
|
{
|
|
if [ -n "$LOGFILE" ]; then
|
|
echo -e "$SCRIPTNAME: $*" >> $LOGFILE
|
|
fi
|
|
}
|
|
|
|
function printnlog
|
|
{
|
|
if [ -n "$LOGFILE" ]; then
|
|
echo -n -e "$SCRIPTNAME: $*" >> $LOGFILE
|
|
fi
|
|
}
|
|
|
|
function print
|
|
{
|
|
echo -e "$SCRIPTNAME: $*"
|
|
printlog $*
|
|
}
|
|
|
|
function printn
|
|
{
|
|
echo -n -e "$SCRIPTNAME: $*"
|
|
printnlog $*
|
|
}
|
|
|
|
function runCommand
|
|
{
|
|
stdoutlog="$LOGFILE"
|
|
if [ -z "$stdoutlog" ]; then
|
|
stdoutlog="/dev/null"
|
|
fi
|
|
$* >> $stdoutlog 2>&1
|
|
LASTRESULT=$?
|
|
print " [$1 returned $LASTRESULT]"
|
|
}
|
|
|
|
function runCommandRedirect
|
|
{
|
|
destinationfile=$1
|
|
shift
|
|
|
|
stdoutlog="$LOGFILE"
|
|
if [ -z "$stdoutlog" ]; then
|
|
stdoutlog="/dev/null"
|
|
fi
|
|
$* > $destinationfile 2>>$stdoutlog
|
|
LASTRESULT=$?
|
|
if [ $LASTRESULT -ne 0 ]; then
|
|
rm $destinationfile
|
|
fi
|
|
print " [$1 returned $LASTRESULT]"
|
|
}
|
|
|
|
function testParameter
|
|
{
|
|
if [ -z "$2" ]; then
|
|
echo "Please give a value to parameter $1"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function makeDir
|
|
{
|
|
cd $BUILDDIR
|
|
print " Creating directory $*"
|
|
runCommand mkdir $*
|
|
}
|
|
|
|
|
|
#
|
|
# Removes the .svn directories
|
|
#
|
|
function removeVCDirs
|
|
{
|
|
if ! [ -d "$BUILDDIR/$*" ]; then
|
|
return
|
|
fi
|
|
print " Removing VCDirs $*"
|
|
cd $BUILDDIR/$*
|
|
find . -type d -a -name '.svn' | xargs rm -rf
|
|
}
|
|
|
|
#
|
|
# This is our work-horse. getResource retrieves all
|
|
# data needed to assemble a working package.
|
|
# Available resources:
|
|
# topleveldir, admindir, source, documentation,
|
|
# languagelist, guitranslation, doctranslation
|
|
#
|
|
function getResource
|
|
{
|
|
DESTINATION=$2
|
|
SINGLEFILEHACK="no"
|
|
case $1 in
|
|
topleveldir)
|
|
COMMAND="svn export -N $SVN_CHECKOUT_OPTIONS $SVNROOT/$APPBASE $DESTINATION"
|
|
;;
|
|
admindir)
|
|
COMMAND="svn export $SVN_CHECKOUT_OPTIONS $SVNROOT/$ADMINDIR $DESTINATION"
|
|
;;
|
|
source)
|
|
COMMAND="svn export $SVN_CHECKOUT_OPTIONS $SVNROOT/$APPBASE/$APPNAME $DESTINATION"
|
|
;;
|
|
documentation)
|
|
COMMAND="svn export $SVN_CHECKOUT_OPTIONS $SVNROOT/$APPBASE/doc/$APPNAME $DESTINATION"
|
|
;;
|
|
languagelist)
|
|
SINGLEFILEHACK="yes"
|
|
COMMAND="svn cat $SVN_CHECKOUT_OPTIONS $SVNROOT/$I18NBASE/subdirs"
|
|
;;
|
|
guitranslation)
|
|
DESTINATION=$3/$4.po
|
|
SINGLEFILEHACK="yes"
|
|
COMMAND="svn cat $SVN_CHECKOUT_OPTIONS $SVNROOT/$I18NBASE/$2/messages/$I18NSUB/$4.po"
|
|
;;
|
|
doctranslation)
|
|
DESTINATION=$3
|
|
COMMAND="svn export $SVN_CHECKOUT_OPTIONS $SVNROOT/$I18NBASE/$2/docs/$I18NDOCSUB/$APPNAME $DESTINATION"
|
|
;;
|
|
*)
|
|
print "ERROR: Unknown resource $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
print " Retrieving resource: $1"
|
|
printlog " getResource $1: $COMMAND"
|
|
|
|
cd $BUILDDIR
|
|
|
|
if [ $SINGLEFILEHACK = "yes" ]; then
|
|
runCommandRedirect $DESTINATION $COMMAND
|
|
else
|
|
runCommand $COMMAND
|
|
fi
|
|
|
|
if [ $LASTRESULT != "0" ]; then
|
|
print "Warning: Resource \"$1\" is not available."
|
|
fi
|
|
return $LASTRESULT
|
|
}
|
|
|
|
#
|
|
# Creates the build dir, the dir where the packages
|
|
# are assembled.
|
|
#
|
|
function setupBuildDir
|
|
{
|
|
print "Creating the build directory..."
|
|
print " ($BUILDDIR)"
|
|
|
|
# clean up first
|
|
if [ -d $BUILDDIR ]; then
|
|
print " Removing the old build directory"
|
|
rm -rf $BUILDDIR
|
|
fi
|
|
|
|
mkdir $BUILDDIR
|
|
}
|
|
|
|
#
|
|
# Gather all data in the build dir needed to build
|
|
# the application (without translations).
|
|
#
|
|
function assembleApplicationData
|
|
{
|
|
print "Assembling the source code..."
|
|
APPDIR=$APPNAME-$APPVERSION
|
|
print " ($APPDIR)"
|
|
|
|
if [ $TOPLEVEL = "yes" ]; then
|
|
getResource "topleveldir" $APPDIR
|
|
fi
|
|
|
|
getResource "admindir" $APPDIR/admin
|
|
|
|
if [ $TOPLEVEL = "yes" ]; then
|
|
getResource "source" $APPDIR/src
|
|
else
|
|
getResource "source" $APPDIR
|
|
fi
|
|
}
|
|
|
|
#
|
|
# Copies the GNU (README, TODO, Changelog, etc.) files.
|
|
#
|
|
function moveGNUFiles
|
|
{
|
|
print " Moving the standard GNU files"
|
|
for file in $GNUFiles
|
|
do
|
|
if [ -f $BUILDDIR/$APPDIR/src/$file ]; then
|
|
mv $BUILDDIR/$APPDIR/src/$file $BUILDDIR/$1
|
|
fi
|
|
done
|
|
}
|
|
|
|
#
|
|
# Cleanup the application or i18n directory by removing
|
|
# unneccessary files and directories.
|
|
#
|
|
function cleanupDirectory
|
|
{
|
|
dir="$1"
|
|
print "Removing unneccessary files and directories"
|
|
for file in $CLEANUPFILES
|
|
do
|
|
path="$dir/$file"
|
|
if [ -f "$path" ]; then
|
|
rm -f $path
|
|
printlog " Removed file: $path"
|
|
elif [ -d "$path" ]; then
|
|
rm -Rf $path
|
|
printlog " Removed directory: $path"
|
|
fi
|
|
done
|
|
}
|
|
|
|
#
|
|
# After all data for the app is gathered, some files
|
|
# still need to be shuffled around.
|
|
#
|
|
function postProcessApplicationDir
|
|
{
|
|
print "Post-processing the application directory..."
|
|
if [ $TOPLEVEL = "yes" ]; then
|
|
moveGNUFiles $APPDIR
|
|
fi
|
|
|
|
if [ ! -z "$POSTPROCESSSCRIPT" ]; then
|
|
print "Running post-processing script..."
|
|
cd $BUILDDIR/$APPDIR
|
|
$POSTPROCESSSCRIPT
|
|
err="$?"
|
|
if [ $err -ne 0 ]; then
|
|
print "ERROR: Post-processing script failed (return status: $err)"
|
|
exit $err
|
|
fi
|
|
print "Post-processing script finished."
|
|
fi
|
|
}
|
|
|
|
function retrieveDocumentation
|
|
{
|
|
if [ $GETDOC = "no" ]; then
|
|
return
|
|
fi
|
|
|
|
print "Retrieving the documentation..."
|
|
DOCDIR=$APPDIR/doc
|
|
print " ($DOCDIR)"
|
|
|
|
getResource "documentation" $DOCDIR
|
|
}
|
|
|
|
#
|
|
# Determines what languages need to be retrieved.
|
|
# If LANGUAGES was not set using the -l switch,
|
|
# the tde-i18n/subdirs file is used.
|
|
#
|
|
function getLanguageList
|
|
{
|
|
print " Determining which languages to include..."
|
|
if [ -z "$LANGUAGES" ]; then
|
|
getResource "languagelist" languagelist
|
|
if [ -e $BUILDDIR/languagelist ]; then
|
|
LANGUAGES=`cat $BUILDDIR/languagelist`
|
|
rm $BUILDDIR/languagelist
|
|
else
|
|
print "ERROR:"
|
|
print "ERROR: Failed to automatically detect which languages to include."
|
|
print "ERROR:"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Remove the excluded languages from the list
|
|
LANGLIST=""
|
|
for language in $LANGUAGES ; do
|
|
EXCLUDE="false"
|
|
for exclang in $EXCLUDELANGUAGES ; do
|
|
if [ "$exclang" = "$language" ]; then
|
|
EXCLUDE="true"
|
|
break
|
|
fi
|
|
done
|
|
if [ $EXCLUDE = "false" ]; then
|
|
LANGLIST="$LANGLIST $language"
|
|
fi
|
|
done
|
|
LANGUAGES=$LANGLIST
|
|
print "Language list: $LANGUAGES"
|
|
}
|
|
|
|
#
|
|
# Creates the dir that holds the translations. This is either
|
|
# a "translations" dir in the application build dir, or, if the
|
|
# --split switch is used, the root dir of a separate i18n package.
|
|
#
|
|
function setupI18NDir
|
|
{
|
|
if [ $SPLIT = "yes" ]; then
|
|
I18NDIR="$APPNAME-i18n-$APPVERSION"
|
|
|
|
getResource "topleveldir" $I18NDIR
|
|
getResource "admindir" $I18NDIR/admin
|
|
moveGNUFiles $I18NDIR
|
|
|
|
TRANSDIR=$I18NDIR
|
|
else
|
|
I18NDIR=$APPDIR
|
|
TRANSDIR="$I18NDIR/translations"
|
|
makeDir $TRANSDIR
|
|
fi
|
|
}
|
|
|
|
function createTranslationDirMakefile
|
|
{
|
|
if [ $GETI18N = "no" ]; then
|
|
return
|
|
fi
|
|
|
|
print " Creating Makefile.am in $1."
|
|
CONTENTS="SUBDIRS=$INCLUDED_LANGUAGES"
|
|
echo $CONTENTS > $1/Makefile.am
|
|
}
|
|
|
|
function createTranslationMakefile
|
|
{
|
|
print " Creating Makefile.am in $1."
|
|
CONTENTS="SUBDIRS="
|
|
if [ -d "$1/messages" ]; then
|
|
CONTENTS="$CONTENTS messages"
|
|
fi
|
|
if [ -d "$1/doc" ]; then
|
|
CONTENTS="$CONTENTS doc";
|
|
fi
|
|
echo $CONTENTS > $1/Makefile.am
|
|
}
|
|
|
|
function createTranslationMakefiles
|
|
{
|
|
if [ $GETI18N = "no" ]; then
|
|
return
|
|
fi
|
|
|
|
for language in $INCLUDED_LANGUAGES ; do
|
|
createTranslationMakefile $BUILDDIR/$TRANSDIR/$language
|
|
done
|
|
}
|
|
|
|
function createGUITranslationMakefile
|
|
{
|
|
print " Creating Makefile.am in $2."
|
|
echo "KDE_LANG = $1
|
|
SUBDIRS = \$(AUTODIRS)
|
|
POFILES = AUTO" > $2/Makefile.am
|
|
}
|
|
|
|
function createDocTranslationMakefile
|
|
{
|
|
print " Creating Makefile.am in $2."
|
|
echo "KDE_LANG = $1
|
|
KDE_DOCS=$APPNAME" > $2/Makefile.am
|
|
}
|
|
|
|
#
|
|
# Get the .po files and put them in xx/messages
|
|
# subdirectories, where xx is the language ISO code.
|
|
#
|
|
function retrieveGUITranslations
|
|
{
|
|
if [ $GETI18N = "no" ]; then
|
|
return
|
|
fi
|
|
|
|
print "Retrieving GUI translations..."
|
|
setupI18NDir
|
|
print " ($TRANSDIR)"
|
|
|
|
# determine which languages to get
|
|
getLanguageList
|
|
|
|
# then get them (its really simple actually)
|
|
INCLUDED_LANGUAGES=""
|
|
for language in $LANGUAGES
|
|
do
|
|
print " Including language $language"
|
|
makeDir $TRANSDIR/$language
|
|
makeDir $TRANSDIR/$language/messages
|
|
INCLUDE_THIS_LANG="yes"
|
|
for pofile in $APP_POFILES; do
|
|
getResource "guitranslation" $language $TRANSDIR/$language/messages $pofile
|
|
if [ ! -e $BUILDDIR/$TRANSDIR/$language/messages/$pofile.po ]; then
|
|
INCLUDE_THIS_LANG="no"
|
|
fi
|
|
done
|
|
|
|
if [ $INCLUDE_THIS_LANG = "yes" ]; then
|
|
createGUITranslationMakefile $language $BUILDDIR/$TRANSDIR/$language/messages
|
|
INCLUDED_LANGUAGES="$INCLUDED_LANGUAGES $language"
|
|
else
|
|
rm -rf $TRANSDIR/$language
|
|
fi
|
|
done
|
|
}
|
|
|
|
function retrieveDocTranslations
|
|
{
|
|
if [ $GETI18N = "no" ]; then
|
|
return
|
|
fi
|
|
|
|
print "Retrieving documentation translations..."
|
|
|
|
for language in $INCLUDED_LANGUAGES ; do
|
|
print " Including documentation for language $language"
|
|
getResource "doctranslation" $language $TRANSDIR/$language/doc
|
|
if [ -e $BUILDDIR/$TRANSDIR/$language/doc/index.docbook ]
|
|
then
|
|
createDocTranslationMakefile $language $BUILDDIR/$TRANSDIR/$language/doc
|
|
else
|
|
print " No translations for $language docs available."
|
|
rm -rf $TRANSDIR/$language/doc
|
|
fi
|
|
done
|
|
}
|
|
|
|
#
|
|
# Create the configure script and Makefile.in's.
|
|
#
|
|
function packageApplication
|
|
{
|
|
cd $BUILDDIR
|
|
|
|
print "Creating configure script and Makefile.in files"
|
|
(cd $APPDIR; runCommand make -f admin/Makefile.common cvs)
|
|
|
|
cleanupDirectory $APPDIR
|
|
|
|
TARNAME="$APPNAME-$APPVERSION.tar"
|
|
if [ $PACKAGE = "gzip" ] || [ $PACKAGE = "yes" ]; then
|
|
print "Packaging application ($TARNAME.gz)..."
|
|
$GZIP $TARNAME.gz $APPDIR
|
|
if [ $BUILDDIR != $TARBALLDIR ]; then
|
|
cp $TARNAME.gz $TARBALLDIR
|
|
fi
|
|
fi
|
|
if [ $PACKAGE = "bzip2" ] || [ $PACKAGE = "yes" ]; then
|
|
print "Packaging application ($TARNAME.bz2)..."
|
|
$BZIP2 $TARNAME.bz2 $APPDIR
|
|
if [ $BUILDDIR != $TARBALLDIR ]; then
|
|
cp $TARNAME.bz2 $TARBALLDIR
|
|
fi
|
|
fi
|
|
}
|
|
|
|
#
|
|
# Create the configure script and Makefile.in's.
|
|
#
|
|
function packageTranslations
|
|
{
|
|
if [ $SPLIT != "yes" ] || [ $GETI18N != "yes" ]; then
|
|
return
|
|
fi
|
|
|
|
cd $BUILDDIR
|
|
|
|
print "Creating translations configure script and Makefile.in files"
|
|
(cd $I18NDIR; runCommand make -f admin/Makefile.common cvs)
|
|
|
|
cleanupDirectory $I18NDIR
|
|
|
|
TARNAME="$APPNAME-i18n-$APPVERSION.tar"
|
|
if [ $PACKAGE = "gzip" ] || [ $PACKAGE = "yes" ]; then
|
|
print "Packaging translations ($TARNAME.gz)..."
|
|
$GZIP $TARNAME.gz $I18NDIR
|
|
if [ $BUILDDIR != $TARBALLDIR ]; then
|
|
cp $TARNAME.gz $TARBALLDIR
|
|
fi
|
|
fi
|
|
if [ $PACKAGE = "bzip2" ] || [ $PACKAGE = "yes" ]; then
|
|
print "Packaging translations ($TARNAME.bz2)..."
|
|
$BZIP2 $TARNAME.bz2 $I18NDIR
|
|
if [ $BUILDDIR != $TARBALLDIR ]; then
|
|
cp $TARNAME.bz2 $TARBALLDIR
|
|
fi
|
|
fi
|
|
}
|
|
|
|
#
|
|
# Force the script to quit
|
|
#
|
|
function cancelScript
|
|
{
|
|
errorcode="$1"
|
|
if [ -z "$errorcode" ]
|
|
then
|
|
errorcode="1"
|
|
fi
|
|
print "Script canceled ($errorcode)"
|
|
exit $errorcode
|
|
}
|
|
|
|
#
|
|
# Do basic parameter checks, print some basic stuff
|
|
# and initialize basic things.
|
|
#
|
|
function initBasic
|
|
{
|
|
trap "cancelScript" SIGINT SIGTERM
|
|
|
|
if [ -n "$LOGFILE" ]; then
|
|
echo "$SCRIPTNAME revision $SCRIPTVERSION `date`" > $LOGFILE
|
|
fi
|
|
|
|
if [ -z "$APPBASE" ]; then
|
|
print "You need to specify an application base path (--app-base). See $SCRIPTNAME --help for more info."
|
|
exit 1
|
|
fi
|
|
if [ -t "$APPNAME" ]; then
|
|
print "You need to specify an application name (--app). See $SCRIPTNAME --help for more info."
|
|
exit 1
|
|
fi
|
|
if [ "$GETI18N" = "yes" ] && [ -z "$I18NSUB" ]; then
|
|
print "You need to specify the i18n subdir or disable i18n checkout (--i18n-sub or --noi18n). See $SCRIPTNAME --help for more info."
|
|
exit 1
|
|
fi
|
|
if [ -z "$I18NDOCSUB" ]; then
|
|
I18NDOCSUB="$I18NSUB"
|
|
fi
|
|
|
|
if [ -z "$APP_POFILES" ]; then
|
|
APP_POFILES="$APPNAME"
|
|
fi
|
|
|
|
print "Using svn-root: $SVNROOT"
|
|
}
|
|
|
|
function initVars
|
|
{
|
|
LOGFILE="$PWD/$SCRIPTNAME.log"
|
|
|
|
APPBASE=""
|
|
APPNAME=""
|
|
SVNROOT="svn://anonsvn.kde.org/home/kde"
|
|
I18NBASE="trunk/l10n"
|
|
I18NSUB=""
|
|
I18NDOCSUB=""
|
|
APP_POFILES=""
|
|
ADMINDIR="trunk/KDE/kde-common/admin"
|
|
|
|
LASTRESULT="0"
|
|
BUILDDIR="$PWD/build"
|
|
TARBALLDIR=$BUILDDIR
|
|
APPVERSION="`date +%d.%m.%y`"
|
|
GETDOC="yes"
|
|
GETI18N="yes"
|
|
SPLIT="no"
|
|
TOPLEVEL="yes"
|
|
PLAINCONFIGURE="no"
|
|
LISTTAGS="no"
|
|
PACKAGE="no"
|
|
LANGUAGES=""
|
|
EXCLUDELANGUAGES="xx"
|
|
GNUFiles="AUTHORS COPYING ChangeLog INSTALL TODO README README.MacOSX README.cwl kile-remote-control.txt Building-with-cmake.txt"
|
|
CLEANUPFILES="autom4te.cache Makefile.cvs"
|
|
POSTPROCESSSCRIPT=""
|
|
|
|
SVN_CHECKOUT_OPTIONS=""
|
|
|
|
BZIP2="tar jcf"
|
|
GZIP="tar zcf"
|
|
}
|
|
|
|
####################################################################
|
|
## ##
|
|
## Here we start: ##
|
|
## ##
|
|
####################################################################
|
|
|
|
# Set the default values for options.
|
|
initVars
|
|
|
|
# Process the options given on the command-line.
|
|
while [ "$#" -gt 0 ]
|
|
do
|
|
case $1 in
|
|
-ab|--app-base)
|
|
testParameter $1 $2
|
|
APPBASE="$2"
|
|
shift
|
|
;;
|
|
-a|--app)
|
|
testParameter $1 $2
|
|
APPNAME="$2"
|
|
shift
|
|
;;
|
|
-d|--svnroot)
|
|
testParameter $1 $2
|
|
SVNROOT="$2"
|
|
shift
|
|
;;
|
|
-ib|--i18n-base)
|
|
testParameter $1 $2
|
|
I18NBASE="$2"
|
|
shift
|
|
;;
|
|
-is|--i18n-sub)
|
|
testParameter $1 $2
|
|
I18NSUB="$2"
|
|
shift
|
|
;;
|
|
-ids|--i18n-docsub)
|
|
testParameter $1 $2
|
|
I18NDOCSUB="$2"
|
|
shift
|
|
;;
|
|
--admin)
|
|
testParameter $1 $2
|
|
ADMINDIR="$2"
|
|
shift
|
|
;;
|
|
-b|--builddir)
|
|
testParameter $1 $2
|
|
BUILDDIR="$2"
|
|
shift
|
|
;;
|
|
-av|--appversion)
|
|
testParameter $1 $2
|
|
APPVERSION="$2"
|
|
shift
|
|
;;
|
|
--pofiles)
|
|
testParameter $1 $2
|
|
APP_POFILES="$APP_POFILES $2"
|
|
shift
|
|
;;
|
|
--nodoc)
|
|
GETDOC="no"
|
|
;;
|
|
--noi18n)
|
|
GETI18N="no"
|
|
;;
|
|
--split)
|
|
SPLIT="yes"
|
|
;;
|
|
--notoplevel)
|
|
TOPLEVEL="no"
|
|
;;
|
|
--package)
|
|
PKGTYPE="$2"
|
|
if [ "$PKGTYPE" = "gzip" ] || [ "$PKGTYPE" = "bzip2" ]
|
|
then
|
|
shift
|
|
PACKAGE="$PKGTYPE"
|
|
else
|
|
PACKAGE="yes"
|
|
fi
|
|
;;
|
|
--packagedir)
|
|
testParameter $1 $2
|
|
TARBALLDIR=$2
|
|
shift
|
|
;;
|
|
--postprocess)
|
|
testParameter $1 $2
|
|
POSTPROCESSSCRIPT=$2
|
|
shift
|
|
;;
|
|
-l|--languages)
|
|
testParameter $1 $2
|
|
LANGUAGES="$LANGUAGES $2"
|
|
shift
|
|
;;
|
|
-el|--exclude-languages)
|
|
testParameter $1 $2
|
|
EXCLUDELANGUAGES="$EXCLUDELANGUAGES $2"
|
|
shift
|
|
;;
|
|
--logfile)
|
|
testParameter $1 $2
|
|
if [ "$2" = "no" ]
|
|
then
|
|
LOGFILE=""
|
|
else
|
|
if [ "`echo $2 | cut -c1`" = "/" ]
|
|
then
|
|
LOGFILE=$2
|
|
else
|
|
LOGFILE=$PWD/$2
|
|
fi
|
|
fi
|
|
shift
|
|
;;
|
|
-h|--help)
|
|
showHelp
|
|
exit 0
|
|
;;
|
|
-v|--version)
|
|
showVersion
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Invalid parameter $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
# process the next parameter
|
|
shift
|
|
done
|
|
|
|
initBasic
|
|
|
|
# Create the builddir, the place where the package will be assembled.
|
|
# If no builddir is specified is specified "./$APPNAME-build" is used.
|
|
setupBuildDir
|
|
|
|
assembleApplicationData
|
|
retrieveDocumentation
|
|
|
|
retrieveGUITranslations
|
|
retrieveDocTranslations
|
|
createTranslationMakefiles
|
|
createTranslationDirMakefile $BUILDDIR/$TRANSDIR
|
|
|
|
postProcessApplicationDir
|
|
|
|
packageApplication
|
|
packageTranslations
|
|
|
|
# vim: set et ts=4 sts=4:
|