mirror of
https://github.com/TangentFoxy/love-release.git
synced 2025-10-02 15:22:29 +00:00
Bug fixes, preparing for Debian pkg support
This commit is contained in:
@@ -15,6 +15,7 @@ A directory (default is `./releases`) will be created, and filled with the zippe
|
|||||||
### OPTIONS
|
### OPTIONS
|
||||||
- *-h*, help
|
- *-h*, help
|
||||||
- *-l*, generates a .love file
|
- *-l*, generates a .love file
|
||||||
|
- *-d*, generates a Debian package **currently not working**
|
||||||
- *-m*, generates a Mac OS X app
|
- *-m*, generates a Mac OS X app
|
||||||
- *-w*, generates Windows x86 and x86_64 executables
|
- *-w*, generates Windows x86 and x86_64 executables
|
||||||
- *-w32*, generates Windows x86 executable
|
- *-w32*, generates Windows x86 executable
|
||||||
|
@@ -20,6 +20,7 @@ OPTIONS
|
|||||||
-h, print this help
|
-h, print this help
|
||||||
|
|
||||||
-l, generates a .love file
|
-l, generates a .love file
|
||||||
|
-d, generates a Debian package
|
||||||
-m, generates a Mac OS X app
|
-m, generates a Mac OS X app
|
||||||
-w, generates Windows x86 and x86_64 executables
|
-w, generates Windows x86 and x86_64 executables
|
||||||
-w32, generates Windows x86 executable
|
-w32, generates Windows x86 executable
|
||||||
@@ -29,6 +30,7 @@ OPTIONS
|
|||||||
-u, company name. Provide it for OSX CFBundleIdentifier, otherwise USER is used
|
-u, company name. Provide it for OSX CFBundleIdentifier, otherwise USER is used
|
||||||
-v, love version. Default is 0.8.0. Prior to it, no special Win64 version is available
|
-v, love version. Default is 0.8.0. Prior to it, no special Win64 version is available
|
||||||
Use '-v dev' for nightly builds
|
Use '-v dev' for nightly builds
|
||||||
|
-V, project's version (eg 3.1.4). Must not include revision nor commit id
|
||||||
|
|
||||||
--refresh, refresh the cache located in '~/.cache/love-release'
|
--refresh, refresh the cache located in '~/.cache/love-release'
|
||||||
--debug, dumps script variables. Does not make releases
|
--debug, dumps script variables. Does not make releases
|
||||||
@@ -139,19 +141,21 @@ function getoptex()
|
|||||||
## Debug function ##
|
## Debug function ##
|
||||||
function debug()
|
function debug()
|
||||||
{
|
{
|
||||||
echo "PROJECT_NAME: $PROJECT_NAME"
|
echo "PROJECT_NAME: $PROJECT_NAME
|
||||||
echo "COMPANY_NAME: $COMPANY_NAME"
|
PROJECT_VERSION: $PROJECT_VERSION
|
||||||
echo "RELEASE_LOVE: $RELEASE_LOVE"
|
COMPANY_NAME: $COMPANY_NAME
|
||||||
echo "RELEASE_OSX: $RELEASE_OSX"
|
RELEASE_LOVE: $RELEASE_LOVE
|
||||||
echo "RELEASE_WIN_32: $RELEASE_WIN_32"
|
RELEASE_OSX: $RELEASE_OSX
|
||||||
echo "RELEASE_WIN_64: $RELEASE_WIN_64"
|
RELEASE_WIN_32: $RELEASE_WIN_32
|
||||||
echo "LOVE_VERSION: $LOVE_VERSION"
|
RELEASE_WIN_64: $RELEASE_WIN_64
|
||||||
echo "LOVE_SUPPORT_WIN_64: $LOVE_SUPPORT_WIN_64"
|
RELEASE_DEBIAN: $RELEASE_DEBIAN
|
||||||
echo "RELEASE_DIR: $RELEASE_DIR"
|
LOVE_VERSION: $LOVE_VERSION
|
||||||
echo "CACHE_DIR: $CACHE_DIR"
|
LOVE_SUPPORT_WIN_64: $LOVE_SUPPORT_WIN_64
|
||||||
echo "CONFIG_FILE: $CONFIG_FILE"
|
RELEASE_DIR: $RELEASE_DIR
|
||||||
echo "CONFIG_FOUND: $CONFIG_FOUND"
|
CACHE_DIR: $CACHE_DIR
|
||||||
echo "DEBUG: $DEBUG"
|
CONFIG_FILE: $CONFIG_FILE
|
||||||
|
CONFIG_FOUND: $CONFIG_FOUND
|
||||||
|
DEBUG: $DEBUG"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -160,6 +164,7 @@ RELEASE_LOVE=false
|
|||||||
RELEASE_OSX=false
|
RELEASE_OSX=false
|
||||||
RELEASE_WIN_32=false
|
RELEASE_WIN_32=false
|
||||||
RELEASE_WIN_64=false
|
RELEASE_WIN_64=false
|
||||||
|
RELEASE_DEBIAN=false
|
||||||
PROJECT_NAME=${PWD##/*/}
|
PROJECT_NAME=${PWD##/*/}
|
||||||
RELEASE_DIR=$PWD/releases
|
RELEASE_DIR=$PWD/releases
|
||||||
COMPANY_NAME=$USER
|
COMPANY_NAME=$USER
|
||||||
@@ -170,6 +175,7 @@ CACHE_DIR=~/.cache/love-release
|
|||||||
CONFIG_FILE=~/.config/love-release.cfg
|
CONFIG_FILE=~/.config/love-release.cfg
|
||||||
CONFIG_FOUND=false
|
CONFIG_FOUND=false
|
||||||
DEBUG=false
|
DEBUG=false
|
||||||
|
GIT=`git log --pretty=format:'%h' -n 1 $1`
|
||||||
|
|
||||||
|
|
||||||
## Config file ##
|
## Config file ##
|
||||||
@@ -214,6 +220,10 @@ if [ -f $CONFIG_FILE ]; then
|
|||||||
if [ -n $RELEASE_WIN_64_TMP ]; then
|
if [ -n $RELEASE_WIN_64_TMP ]; then
|
||||||
RELEASE_WIN_64=$RELEASE_WIN_64_TMP
|
RELEASE_WIN_64=$RELEASE_WIN_64_TMP
|
||||||
fi
|
fi
|
||||||
|
RELEASE_DEBIAN_TMP=${CFG[$PROJECT_NAME"_release-debian"]}
|
||||||
|
if [ -n $RELEASE_DEBIAN_TMP ]; then
|
||||||
|
RELEASE_DEBIAN=$RELEASE_DEBIAN_TMP
|
||||||
|
fi
|
||||||
COMPANY_NAME_TMP=${CFG[$PROJECT_NAME"_company-name"]}
|
COMPANY_NAME_TMP=${CFG[$PROJECT_NAME"_company-name"]}
|
||||||
if [ -n $COMPANY_NAME_TMP ]; then
|
if [ -n $COMPANY_NAME_TMP ]; then
|
||||||
COMPANY_NAME=$COMPANY_NAME_TMP
|
COMPANY_NAME=$COMPANY_NAME_TMP
|
||||||
@@ -221,7 +231,7 @@ if [ -f $CONFIG_FILE ]; then
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo '## Config file for love-release.sh ##
|
echo "## Configuration file for love-release.sh ##
|
||||||
|
|
||||||
# Declare your projects here, to automate release process and not having to retype every options
|
# Declare your projects here, to automate release process and not having to retype every options
|
||||||
# The name MUST be the same as your projects root directory
|
# The name MUST be the same as your projects root directory
|
||||||
@@ -231,19 +241,20 @@ PROJECTS=()
|
|||||||
declare -A CFG
|
declare -A CFG
|
||||||
i=0
|
i=0
|
||||||
|
|
||||||
# CFG[${PROJECTS[i]}"_company-name"]="MyCompany"
|
# CFG[${PROJECTS[i]}\"_company-name\"]=\"MyCompany\"
|
||||||
# CFG[${PROJECTS[i]}"_love-version"]="0.8.0"
|
# CFG[${PROJECTS[i]}\"_love-version\"]=\"0.8.0\"
|
||||||
# CFG[${PROJECTS[i]}"_release-dir"]="releases"
|
# CFG[${PROJECTS[i]}\"_release-dir\"]=\"releases\"
|
||||||
# CFG[${PROJECTS[i]}"_release-love"]=true
|
# CFG[${PROJECTS[i]}\"_release-love\"]=true
|
||||||
# CFG[${PROJECTS[i]}"_release-osx"]=true
|
# CFG[${PROJECTS[i]}\"_release-osx\"]=true
|
||||||
# CFG[${PROJECTS[i]}"_release-win32"]=true
|
# CFG[${PROJECTS[i]}\"_release-win32\"]=true
|
||||||
# CFG[${PROJECTS[i]}"_release-win64"]=true
|
# CFG[${PROJECTS[i]}\"_release-win64\"]=true
|
||||||
# ((i++))' > $CONFIG_FILE
|
# CFG[${PROJECTS[i]}\"_release-debian\"]=true
|
||||||
|
# ((i++))" > $CONFIG_FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
## Parsing options ##
|
## Parsing options ##
|
||||||
while getoptex "h; l; m; w. r: u: v: refresh debug" "$@"
|
while getoptex "h; d; l; m; w. r: u: v: refresh debug" "$@"
|
||||||
do
|
do
|
||||||
if [ $OPTOPT = "h" ]; then # print help
|
if [ $OPTOPT = "h" ]; then # print help
|
||||||
echo "$HELP"
|
echo "$HELP"
|
||||||
@@ -261,6 +272,8 @@ do
|
|||||||
RELEASE_WIN_32=true
|
RELEASE_WIN_32=true
|
||||||
RELEASE_WIN_64=true
|
RELEASE_WIN_64=true
|
||||||
fi
|
fi
|
||||||
|
elif [ $OPTOPT = "d"]; then
|
||||||
|
RELEASE_DEBIAN=true
|
||||||
elif [ $OPTOPT = "r" ]; then
|
elif [ $OPTOPT = "r" ]; then
|
||||||
RELEASE_DIR=$OPTARG
|
RELEASE_DIR=$OPTARG
|
||||||
elif [ $OPTOPT = "u" ]; then
|
elif [ $OPTOPT = "u" ]; then
|
||||||
@@ -285,11 +298,12 @@ for file in "$@"
|
|||||||
do
|
do
|
||||||
PROJECT_FILES="$PROJECT_FILES $file"
|
PROJECT_FILES="$PROJECT_FILES $file"
|
||||||
done
|
done
|
||||||
if [ $RELEASE_LOVE = false ] && [ $RELEASE_OSX = false ] && [ $RELEASE_WIN_32 = false ] && [ $RELEASE_WIN_64 = false ] && [ $CONFIG_FOUND = false ]; then
|
if [ $RELEASE_LOVE = false ] && [ $RELEASE_OSX = false ] && [ $RELEASE_WIN_32 = false ] && [ $RELEASE_WIN_64 = false ] && [ $RELEASE_DEBIAN = false ] && [ $CONFIG_FOUND = false ]; then
|
||||||
RELEASE_LOVE=true
|
RELEASE_LOVE=true
|
||||||
RELEASE_OSX=true
|
RELEASE_OSX=true
|
||||||
RELEASE_WIN_32=true
|
RELEASE_WIN_32=true
|
||||||
RELEASE_WIN_64=true
|
RELEASE_WIN_64=true
|
||||||
|
RELEASE_DEBIAN=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -357,6 +371,25 @@ if [ $LOVE_SUPPORT_WIN_64 = "1" ] && [ $RELEASE_WIN_64 = true ]; then
|
|||||||
rm -rf love-$LOVE_VERSION-win-x64.zip love-$LOVE_VERSION-win-x64
|
rm -rf love-$LOVE_VERSION-win-x64.zip love-$LOVE_VERSION-win-x64
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## Debian package ##
|
||||||
|
if [ $RELEASE_DEBIAN = true ]; then
|
||||||
|
mkdir -p $PROJECT_NAME/{DEBIAN,usr/{bin,share/games}}
|
||||||
|
echo "Package: $PROJECT
|
||||||
|
Version:
|
||||||
|
Architecture: all
|
||||||
|
Maintainer: $COMPANY_NAME
|
||||||
|
Installed-Size:
|
||||||
|
Depends: love (>= $LOVE_VERSION)
|
||||||
|
Section: games
|
||||||
|
Priority: extra
|
||||||
|
Homepage:
|
||||||
|
Description: " > $PROJECT_NAME/DEBIAN/control
|
||||||
|
echo "#!/bin/bash
|
||||||
|
set -e
|
||||||
|
love /usr/share/games/$PROJECT_NAME/$PROJECT_NAME.love" > $PROJECT_NAME/usr/bin/$PROJECT_NAME
|
||||||
|
chmod +x $PROJECT_NAME/usr/bin/$PROJECT_NAME
|
||||||
|
fi
|
||||||
|
|
||||||
## Mac OS X ##
|
## Mac OS X ##
|
||||||
if [ $RELEASE_OSX = true ]; then
|
if [ $RELEASE_OSX = true ]; then
|
||||||
if [ -f $CACHE_DIR/love-$LOVE_VERSION-macosx-ub.zip ]; then
|
if [ -f $CACHE_DIR/love-$LOVE_VERSION-macosx-ub.zip ]; then
|
||||||
@@ -375,9 +408,9 @@ if [ $RELEASE_OSX = true ]; then
|
|||||||
rm -rf $PROJECT_NAME-osx.zip 2> /dev/null
|
rm -rf $PROJECT_NAME-osx.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
|
||||||
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\">
|
||||||
<dict>
|
<dict>
|
||||||
<key>BuildMachineOSBuild</key>
|
<key>BuildMachineOSBuild</key>
|
||||||
<string>11D50b</string>
|
<string>11D50b</string>
|
||||||
@@ -449,8 +482,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>
|
|||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
<string>NSApplication</string>
|
<string>NSApplication</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>" > $PROJECT_NAME.app/Contents/Info.plist
|
||||||
' > $PROJECT_NAME.app/Contents/Info.plist
|
|
||||||
zip -qr $PROJECT_NAME-osx.zip $PROJECT_NAME.app
|
zip -qr $PROJECT_NAME-osx.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
|
||||||
|
Reference in New Issue
Block a user