Added first cut wxWindows Configuration Tool
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
132
utils/configtool/scripts/makeinno.sh
Normal file
132
utils/configtool/scripts/makeinno.sh
Normal file
@@ -0,0 +1,132 @@
|
||||
#! /bin/sh
|
||||
# Make an Inno Setup distribution list, where files and dirs are represented by
|
||||
# sections like this:
|
||||
# [Dirs]
|
||||
# Name: {app}\backgrounds
|
||||
#
|
||||
# [Files]
|
||||
# Source: C:\program\setup\about.htm; DestDir: {app}\; DestName: about.htm
|
||||
#
|
||||
#
|
||||
# Usage: makeinno.sh sourcedir inno-topfile inno-bottomfile destfile
|
||||
# For example: makeinno.sh c:/project/allfiles c:/project/innotop.txt c:/project/innobott.txt c:/project/project.iss
|
||||
#
|
||||
|
||||
PROGNAME=$0
|
||||
SOURCEDIR=$1
|
||||
TOPFILE=$2
|
||||
BOTTOMFILE=$3
|
||||
INNOFILE=$4
|
||||
TEMPDIR=/tmp
|
||||
|
||||
dochecks()
|
||||
{
|
||||
if [ "$SOURCEDIR" = "" ] || [ "$TOPFILE" = "" ] || [ "$BOTTOMFILE" = "" ] || [ "$INNOFILE" = "" ] ; then
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ ! -d $SOURCEDIR ]; then
|
||||
echo "Sorry, the source directory $SOURCEDIR does not exist."
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ ! -f $TOPFILE ]; then
|
||||
echo "Sorry, the Inno Setup header $TOPFILE does not exist."
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ ! -f $BOTTOMFILE ]; then
|
||||
echo "Sorry, the Inno Setup header $BOTTOMFILE does not exist."
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ ! -d $TEMPDIR ]; then
|
||||
mkdir $TEMPDIR
|
||||
fi
|
||||
}
|
||||
|
||||
doreplace()
|
||||
{
|
||||
thefile=$1
|
||||
theexpr=$2
|
||||
|
||||
if [ -f $thefile ]; then
|
||||
sed -e "$theexpr" < $thefile > $thefile.tmp
|
||||
mv $thefile.tmp $thefile
|
||||
else
|
||||
echo "*** $thefile not found."
|
||||
fi
|
||||
}
|
||||
|
||||
generateinno()
|
||||
{
|
||||
# SRCDIR=`cygpath -u $SRCDIR`
|
||||
# DESTDIR=`cygpath -u $DESTDIR`
|
||||
# TEMPDIR=`cygpath -u $TEMP`
|
||||
|
||||
|
||||
# Generate a list of all files in the distribution.
|
||||
# We pass the output through sed in order to remove the preceding "./"
|
||||
cd $SOURCEDIR
|
||||
find . -print | sed -e "s/\.\\///g" > $TEMPDIR/files1.tmp
|
||||
|
||||
echo "[Dirs]" > $TEMPDIR/files2.tmp
|
||||
|
||||
for line in `cat $TEMPDIR/files1.tmp` ; do
|
||||
|
||||
# If a directory, add to file
|
||||
if [ -d $line ] ; then
|
||||
# The relative path
|
||||
# TODO: make into DOS filename form
|
||||
#line2=`cygpath -w $line`
|
||||
line2=$line
|
||||
|
||||
echo " Name: {app}\\"$line2 >> $TEMPDIR/files2.tmp
|
||||
fi
|
||||
done
|
||||
|
||||
echo "" >> $TEMPDIR/files2.tmp
|
||||
echo "[Files]" >> $TEMPDIR/files2.tmp
|
||||
|
||||
for line in `cat $TEMPDIR/files1.tmp` ; do
|
||||
|
||||
# If not a directory, add to file
|
||||
if [ ! -d $line ] ; then
|
||||
# The relative path
|
||||
# TODO: make into DOS filename form
|
||||
#line2=`cygpath -w $line`
|
||||
line2=$line
|
||||
|
||||
# The absolute path
|
||||
# TODO: make into DOS filename form
|
||||
#line1=`cygpath -w $SOURCEDIR`"\\"$line2
|
||||
line1=$SOURCEDIR"\\"$line2
|
||||
#pathonly=`find $line -printf "%h"`
|
||||
pathonly=`dirname $line`
|
||||
|
||||
echo " Source: "$line1"; DestDir: {app}\\"$pathonly >> $TEMPDIR/files2.tmp
|
||||
fi
|
||||
done
|
||||
|
||||
echo "" >> $TEMPDIR/files2.tmp
|
||||
|
||||
doreplace $TEMPDIR/files2.tmp "s/\//\\\/g"
|
||||
|
||||
# Concatenate the 3 sections
|
||||
cat $TOPFILE $TEMPDIR/files2.tmp $BOTTOMFILE > $INNOFILE
|
||||
|
||||
rm -f $TEMPDIR/files1.tmp
|
||||
}
|
||||
|
||||
usage()
|
||||
{
|
||||
echo Usage: $PROGNAME sourcedir inno-topfile inno-bottomfile destfile
|
||||
echo For example: $PROGNAME c:/project/allfiles c:/project/innotop.txt c:/project/innobott.txt c:/project/project.iss
|
||||
echo Remember to use paths of the form c:/thing rather than /c/thing.
|
||||
exit 1
|
||||
}
|
||||
|
||||
dochecks
|
||||
generateinno
|
||||
|
||||
|
Reference in New Issue
Block a user