Escapes paths to prevent errors when filename contains special chars

This commit is contained in:
Antonin Décimo
2014-06-23 12:23:13 +02:00
parent 319ee48951
commit 75039caef3

View File

@@ -211,7 +211,7 @@ LOVE_GT_090=$(float_test "$LOVE_VERSION_MAJOR >= 0.9")
PROJECT_FILES= PROJECT_FILES=
PROJECT_NAME=${PWD##/*/} PROJECT_NAME=${PWD##/*/}
COMPANY_NAME=love2d COMPANY_NAME=love2d
RELEASE_DIR=$PWD/releases RELEASE_DIR="$PWD"/releases
DEBUG=false DEBUG=false
CACHE_DIR=~/.cache/love-release CACHE_DIR=~/.cache/love-release
@@ -294,15 +294,15 @@ if [ "$RELEASE_LOVE" = false ] && [ "$RELEASE_OSX" = false ] && [ "$RELEASE_WIN_
RELEASE_WIN_64=true RELEASE_WIN_64=true
fi fi
MAIN_RELEASE_DIR=${RELEASE_DIR##/*/} MAIN_RELEASE_DIR=${RELEASE_DIR##/*/}
RELEASE_DIR=$RELEASE_DIR/$LOVE_VERSION RELEASE_DIR="$RELEASE_DIR"/$LOVE_VERSION
CACHE_DIR=$CACHE_DIR/$LOVE_VERSION CACHE_DIR=$CACHE_DIR/$LOVE_VERSION
if [ -f "$PWD/$PROJECT_NAME.icns" ]; then if [ -f "$PWD"/"$PROJECT_NAME".icns ]; then
PROJECT_ICNS=$PWD/$PROJECT_NAME.icns PROJECT_ICNS="$PWD"/"$PROJECT_NAME".icns
else else
PROJECT_ICNS= PROJECT_ICNS=
fi fi
if [ -f "$PWD/$PROJECT_NAME.ico" ]; then if [ -f "$PWD"/"$PROJECT_NAME".ico ]; then
PROJECT_ICO=$PWD/$PROJECT_NAME.ico PROJECT_ICO="$PWD"/"$PROJECT_NAME".ico
else else
PROJECT_ICO= PROJECT_ICO=
fi fi
@@ -315,18 +315,18 @@ if [ "$DEBUG" = true ]; then
fi fi
echo "Generating $PROJECT_NAME with Love $LOVE_VERSION..." echo "Generating "$PROJECT_NAME" with Love $LOVE_VERSION..."
## Zipping ## ## Zipping ##
mkdir -p $RELEASE_DIR $CACHE_DIR mkdir -p "$RELEASE_DIR" $CACHE_DIR
rm -rf $RELEASE_DIR/$PROJECT_NAME.love 2> /dev/null rm -rf "$RELEASE_DIR"/"$PROJECT_NAME".love 2> /dev/null
if [ -z "$PROJECT_FILES" ]; then if [ -z "$PROJECT_FILES" ]; then
zip -9 -r $RELEASE_DIR/$PROJECT_NAME.love -x $0 $MAIN_RELEASE_DIR/\* ${PROJECT_ICNS##/*/} ${PROJECT_ICO##/*/} $EXCLUDE_FILES @ * zip -9 -r "$RELEASE_DIR"/"$PROJECT_NAME".love -x $0 "$MAIN_RELEASE_DIR"/\* ${PROJECT_ICNS##/*/} ${PROJECT_ICO##/*/} $EXCLUDE_FILES @ *
else else
zip -9 -r $RELEASE_DIR/$PROJECT_NAME.love -x $0 $MAIN_RELEASE_DIR/\* ${PROJECT_ICNS##/*/} ${PROJECT_ICO##/*/} $EXCLUDE_FILES @ $PROJECT_FILES zip -9 -r "$RELEASE_DIR"/"$PROJECT_NAME".love -x $0 "$MAIN_RELEASE_DIR"/\* ${PROJECT_ICNS##/*/} ${PROJECT_ICO##/*/} $EXCLUDE_FILES @ $PROJECT_FILES
fi fi
cd $RELEASE_DIR cd "$RELEASE_DIR"
## Windows 32-bits ## ## Windows 32-bits ##
@@ -347,11 +347,11 @@ if [ "$RELEASE_WIN_32" = true ]; then
fi fi
fi fi
unzip -qq love-$LOVE_VERSION-win32.zip unzip -qq love-$LOVE_VERSION-win32.zip
rm -rf $PROJECT_NAME-win32.zip 2> /dev/null rm -rf "$PROJECT_NAME"-win32.zip 2> /dev/null
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win32/love.exe,love-$LOVE_VERSION-win32/love.exe,$PROJECT_ICO,ICONGROUP,MAINICON,0" wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win32/love.exe,love-$LOVE_VERSION-win32/love.exe,"$PROJECT_ICO",ICONGROUP,MAINICON,0"
cat love-$LOVE_VERSION-win32/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win32/$PROJECT_NAME.exe cat love-$LOVE_VERSION-win32/love.exe "$PROJECT_NAME".love > love-$LOVE_VERSION-win32/"$PROJECT_NAME".exe
rm love-$LOVE_VERSION-win32/love.exe rm love-$LOVE_VERSION-win32/love.exe
zip -9 -qr $PROJECT_NAME-win32.zip love-$LOVE_VERSION-win32 zip -9 -qr "$PROJECT_NAME"-win32.zip love-$LOVE_VERSION-win32
rm -rf love-$LOVE_VERSION-win32.zip love-$LOVE_VERSION-win32 rm -rf love-$LOVE_VERSION-win32.zip love-$LOVE_VERSION-win32
fi fi
@@ -373,11 +373,11 @@ if [ "$RELEASE_WIN_64" = true ] && [ "$LOVE_GT_080" = true ]; then
fi fi
fi fi
unzip -qq love-$LOVE_VERSION-win64.zip unzip -qq love-$LOVE_VERSION-win64.zip
rm -rf $PROJECT_NAME-win64.zip 2> /dev/null rm -rf "$PROJECT_NAME"-win64.zip 2> /dev/null
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win64/love.exe,love-$LOVE_VERSION-win64/love.exe,$PROJECT_ICO,ICONGROUP,MAINICON,0" wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win64/love.exe,love-$LOVE_VERSION-win64/love.exe,"$PROJECT_ICO",ICONGROUP,MAINICON,0"
cat love-$LOVE_VERSION-win64/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win64/$PROJECT_NAME.exe cat love-$LOVE_VERSION-win64/love.exe "$PROJECT_NAME".love > love-$LOVE_VERSION-win64/"$PROJECT_NAME".exe
rm love-$LOVE_VERSION-win64/love.exe rm love-$LOVE_VERSION-win64/love.exe
zip -9 -qr $PROJECT_NAME-win64.zip love-$LOVE_VERSION-win64 zip -9 -qr "$PROJECT_NAME"-win64.zip love-$LOVE_VERSION-win64
rm -rf love-$LOVE_VERSION-win64.zip love-$LOVE_VERSION-win64 rm -rf love-$LOVE_VERSION-win64.zip love-$LOVE_VERSION-win64
fi fi
@@ -393,10 +393,10 @@ if [ "$RELEASE_OSX" = true ]; then
cp $CACHE_DIR/love-$LOVE_VERSION-macosx-x64.zip ./ cp $CACHE_DIR/love-$LOVE_VERSION-macosx-x64.zip ./
fi fi
unzip -qq love-$LOVE_VERSION-macosx-x64.zip unzip -qq love-$LOVE_VERSION-macosx-x64.zip
rm -rf $PROJECT_NAME-macosx-x64.zip 2> /dev/null rm -rf "$PROJECT_NAME"-macosx-x64.zip 2> /dev/null
mv love.app $PROJECT_NAME.app mv love.app "$PROJECT_NAME".app
cp $PROJECT_NAME.love $PROJECT_NAME.app/Contents/Resources cp "$PROJECT_NAME".love "$PROJECT_NAME".app/Contents/Resources
cp $PROJECT_ICNS $PROJECT_NAME.app/Contents/Resources 2> /dev/null cp "$PROJECT_ICNS" "$PROJECT_NAME".app/Contents/Resources 2> /dev/null
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\"> <plist version=\"1.0\">
@@ -439,11 +439,11 @@ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>${PROJECT_ICNS##/*/}</string> <string>${PROJECT_ICNS##/*/}</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>org.$COMPANY_NAME.$PROJECT_NAME</string> <string>org.$COMPANY_NAME."$PROJECT_NAME"</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>$PROJECT_NAME</string> <string>"$PROJECT_NAME"</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
@@ -471,9 +471,9 @@ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
<string>NSApplication</string> <string>NSApplication</string>
</dict> </dict>
</plist>" > $PROJECT_NAME.app/Contents/Info.plist </plist>" > "$PROJECT_NAME".app/Contents/Info.plist
zip -9 -qr $PROJECT_NAME-macosx-x64.zip $PROJECT_NAME.app zip -9 -qr "$PROJECT_NAME"-macosx-x64.zip "$PROJECT_NAME".app
rm -rf love-$LOVE_VERSION-macosx-x64.zip $PROJECT_NAME.app rm -rf love-$LOVE_VERSION-macosx-x64.zip "$PROJECT_NAME".app
## MacOS 32-bits ## ## MacOS 32-bits ##
else else
@@ -484,10 +484,10 @@ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
cp $CACHE_DIR/love-$LOVE_VERSION-macosx-ub.zip ./ cp $CACHE_DIR/love-$LOVE_VERSION-macosx-ub.zip ./
fi fi
unzip -qq love-$LOVE_VERSION-macosx-ub.zip unzip -qq love-$LOVE_VERSION-macosx-ub.zip
rm -rf $PROJECT_NAME-macosx-ub.zip 2> /dev/null rm -rf "$PROJECT_NAME"-macosx-ub.zip 2> /dev/null
mv love.app $PROJECT_NAME.app mv love.app "$PROJECT_NAME".app
cp $PROJECT_NAME.love $PROJECT_NAME.app/Contents/Resources cp "$PROJECT_NAME".love "$PROJECT_NAME".app/Contents/Resources
cp $PROJECT_ICNS $PROJECT_NAME.app/Contents/Resources 2> /dev/null cp "$PROJECT_ICNS" "$PROJECT_NAME".app/Contents/Resources 2> /dev/null
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\"> <plist version=\"1.0\">
@@ -530,11 +530,11 @@ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>${PROJECT_ICNS##/*/}</string> <string>${PROJECT_ICNS##/*/}</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.$COMPANY_NAME.$PROJECT_NAME</string> <string>com.$COMPANY_NAME."$PROJECT_NAME"</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>$PROJECT_NAME</string> <string>"$PROJECT_NAME"</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
@@ -562,15 +562,15 @@ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
<string>NSApplication</string> <string>NSApplication</string>
</dict> </dict>
</plist>" > $PROJECT_NAME.app/Contents/Info.plist </plist>" > "$PROJECT_NAME".app/Contents/Info.plist
zip -9 -qr $PROJECT_NAME-macosx-ub.zip $PROJECT_NAME.app zip -9 -qr "$PROJECT_NAME"-macosx-ub.zip "$PROJECT_NAME".app
rm -rf love-$LOVE_VERSION-macosx-ub.zip $PROJECT_NAME.app rm -rf love-$LOVE_VERSION-macosx-ub.zip "$PROJECT_NAME".app
fi fi
fi fi
## Love file ## ## Love file ##
if [ "$RELEASE_LOVE" = false ]; then if [ "$RELEASE_LOVE" = false ]; then
rm $PROJECT_NAME.love rm "$PROJECT_NAME".love
fi fi
echo "Done !" echo "Done !"