2025-08-08 20:34:09 +02:00

70 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
#
# $1 - Bundle directory
# $2 - Name of wrapper shellscript
# $3 - Path of icon file
# $4 - Path of binary executable
# $5 - Path of plist template
# $6 - Creator
# $@ - Additional arguments for executable
set -e
BDIR=$1
SCRIPT=$2
ICON=$3
BIN=$4
PLIST=$5
CREATOR="$6"
shift 6
curdir=`pwd`
cd `dirname $0`
THISDIR=`pwd`
cd $curdir
BB=`basename $BIN`
BNAME="`basename \"$BDIR\" .app`"
BDNAME="`basename \"$BDIR\" .app`"
if test -z "$CREATOR" ; then
CREATOR="????"
fi
mkdir -p "$BDIR/Contents/MacOS"
mkdir -p "$BDIR/Contents/Resources"
iconshort=`basename $ICON .icns`
if [ -n "$SCRIPT" ] ; then
sed -e "s/_ICON_/$iconshort/" \
-e "s/_EXECUTABLE_/$SCRIPT/" \
-e "s/_BUNDLEID_/$SCRIPT/" \
-e "s/_BNAME_/$BNAME/" \
-e "s/_BDNAME_/$BDNAME/" \
-e "s/_CREATOR_/$CREATOR/" < $PLIST > "$BDIR/Contents/Info.plist"
else
sed -e "s/_ICON_/$iconshort/" \
-e "s/_EXECUTABLE_/$BB/" \
-e "s/_BUNDLEID_/$BB/" \
-e "s/_BNAME_/$BNAME/" \
-e "s/_BDNAME_/$BDNAME/" \
-e "s/_CREATOR_/$CREATOR/" < $PLIST > "$BDIR/Contents/Info.plist"
fi
cp $ICON "$BDIR/Contents/Resources"
chmod u+w "$BDIR/Contents/Resources/$iconshort.icns"
echo "APPL$CREATOR" > "$BDIR/Contents/PkgInfo"
IPLNAME=$BB
if [ -n "$SCRIPT" ] ; then
IPLNAME=$SCRIPT
cat<<EOF>"$BDIR/Contents/MacOS/$SCRIPT"
#!/bin/sh
exec $BIN "\$@" $@
EOF
chmod a+x "$BDIR/Contents/MacOS/$SCRIPT"
else
rm -f "$BDIR/Contents/MacOS/$BB"
ln -s "$BIN" "$BDIR/Contents/MacOS/$BB"
fi
for lng in en de ; do
if test -f $THISDIR/$IPLNAME.$lng.infoplist ; then
mkdir -p "$BDIR/Contents/Resources/$lng.lproj"
iconv -t UTF-16 $THISDIR/$IPLNAME.$lng.infoplist \
> "$BDIR/Contents/Resources/$lng.lproj/InfoPlist.strings"
fi
done