mirror of
https://github.com/TangentFoxy/love-release.git
synced 2025-07-28 11:02:20 +00:00
Add Debian module
This commit is contained in:
@@ -81,7 +81,7 @@ to set the game icon on Windows.
|
|||||||
`--package-name` Set the name of the package and the command that will be used to launch your game.
|
`--package-name` Set the name of the package and the command that will be used to launch your game.
|
||||||
By default, it is the name of your project converted to lowercase,
|
By default, it is the name of your project converted to lowercase,
|
||||||
with eventual spaces replaced by dashes.
|
with eventual spaces replaced by dashes.
|
||||||
`--version` Set the version of your package.
|
`--package-version` Set the version of your package.
|
||||||
|
|
||||||
#### ANDROID
|
#### ANDROID
|
||||||
Note that every argument passed to the options should be alphanumerical,
|
Note that every argument passed to the options should be alphanumerical,
|
||||||
|
@@ -103,7 +103,7 @@ Set the name of the package and the command that will be use to launch your game
|
|||||||
By default, it is the name of your project converted to lowercase,
|
By default, it is the name of your project converted to lowercase,
|
||||||
with eventual spaces replaced by dashes.
|
with eventual spaces replaced by dashes.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-version \fIversion\fR
|
.B \-\-package\-version \fIversion\fR
|
||||||
Set the version of your package.
|
Set the version of your package.
|
||||||
.SH ANDROID
|
.SH ANDROID
|
||||||
Note that every argument passed to the options should be alphanumerical,
|
Note that every argument passed to the options should be alphanumerical,
|
||||||
|
@@ -14,15 +14,19 @@ LOVE_VERSION=0.9.1
|
|||||||
## - a colon ":" if it requires an argument
|
## - a colon ":" if it requires an argument
|
||||||
|
|
||||||
## SCRIPT_ARGS="a; osname:"
|
## SCRIPT_ARGS="a; osname:"
|
||||||
SCRIPT_ARGS="l; w."
|
SCRIPT_ARGS="l; d; w."
|
||||||
|
|
||||||
## Windows
|
## Windows
|
||||||
SCRIPT_ARGS="icon: $SCRIPT_ARGS"
|
SCRIPT_ARGS="icon: $SCRIPT_ARGS"
|
||||||
|
## Debian
|
||||||
|
SCRIPT_ARGS="package-version: maintainer-name: maintainer-email: homepage: description: package-name: $SCRIPT_ARGS"
|
||||||
|
|
||||||
|
|
||||||
## Add a short summary of your platform script here
|
## Add a short summary of your platform script here
|
||||||
## SHORT_HELP=" -a Create an executable for a
|
## SHORT_HELP=" -a Create an executable for a
|
||||||
## --osname Create an executable for osname"
|
## --osname Create an executable for osname"
|
||||||
SHORT_HELP=" -l Create a plain Love file
|
SHORT_HELP=" -l Create a plain Love file
|
||||||
|
-d Create a Debian package
|
||||||
-w, Create a Windows application
|
-w, Create a Windows application
|
||||||
-w32 Create a Windows x86 application
|
-w32 Create a Windows x86 application
|
||||||
-w64 Create a Windows x64 application"
|
-w64 Create a Windows x64 application"
|
||||||
@@ -184,6 +188,8 @@ do
|
|||||||
## fi
|
## fi
|
||||||
if [ "$OPTOPT" = "l" ]; then
|
if [ "$OPTOPT" = "l" ]; then
|
||||||
source "$PLATFORMS_DIR"/love.sh
|
source "$PLATFORMS_DIR"/love.sh
|
||||||
|
elif [ "$OPTOPT" = "d" ]; then
|
||||||
|
source "$PLATFORMS_DIR"/debian.sh
|
||||||
elif [ "$OPTOPT" = "w" ]; then
|
elif [ "$OPTOPT" = "w" ]; then
|
||||||
if [ "$OPTARG" = "32" ]; then
|
if [ "$OPTARG" = "32" ]; then
|
||||||
RELEASE_WIN_32=true
|
RELEASE_WIN_32=true
|
||||||
|
116
scripts/debian.sh
Normal file
116
scripts/debian.sh
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Debian package
|
||||||
|
init_module "Debian"
|
||||||
|
|
||||||
|
|
||||||
|
# Options
|
||||||
|
package_name_defined_argument=false
|
||||||
|
while getoptex "$SCRIPT_ARGS" "$@"
|
||||||
|
do
|
||||||
|
if [ "$OPTOPT" = "package-version" ]; then
|
||||||
|
PACKAGE_VERSION=$OPTARG
|
||||||
|
elif [ "$OPTOPT" = "homepage" ]; then
|
||||||
|
PROJECT_HOMEPAGE=$OPTARG
|
||||||
|
elif [ "$OPTOPT" = "description" ]; then
|
||||||
|
PROJECT_DESCRIPTION=$OPTARG
|
||||||
|
elif [ "$OPTOPT" = "maintainer-name" ]; then
|
||||||
|
MAINTAINER_NAME=$OPTARG
|
||||||
|
elif [ "$OPTOPT" = "maintainer-email" ]; then
|
||||||
|
MAINTAINER_EMAIL=$OPTARG
|
||||||
|
elif [ "$OPTOPT" = "package-name" ]; then
|
||||||
|
PACKAGE_NAME=$OPTARG
|
||||||
|
package_name_defined_argument=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ "$package_name_defined_argument" = false ]; then
|
||||||
|
PACKAGE_NAME=$(echo $PROJECT_NAME | sed -e 's/[^-a-zA-Z0-9_]/-/g')
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
create_love_file
|
||||||
|
|
||||||
|
|
||||||
|
# Debian
|
||||||
|
MISSING_INFO=0
|
||||||
|
ERROR_MSG="Could not build Debian package."
|
||||||
|
if [ -z "$PACKAGE_VERSION" ]; then
|
||||||
|
MISSING_INFO=1
|
||||||
|
ERROR_MSG="$ERROR_MSG\nMissing project's version. Use --package-version."
|
||||||
|
fi
|
||||||
|
if [ -z "$PROJECT_HOMEPAGE" ]; then
|
||||||
|
MISSING_INFO=1
|
||||||
|
ERROR_MSG="$ERROR_MSG\nMissing project's homepage. Use --homepage."
|
||||||
|
fi
|
||||||
|
if [ -z "$PROJECT_DESCRIPTION" ]; then
|
||||||
|
MISSING_INFO=1
|
||||||
|
ERROR_MSG="$ERROR_MSG\nMissing project's description. Use --description."
|
||||||
|
fi
|
||||||
|
if [ -z "$MAINTAINER_NAME" ]; then
|
||||||
|
MISSING_INFO=1
|
||||||
|
ERROR_MSG="$ERROR_MSG\nMissing maintainer's name. Use --maintainer-name."
|
||||||
|
fi
|
||||||
|
if [ -z "$MAINTAINER_EMAIL" ]; then
|
||||||
|
MISSING_INFO=1
|
||||||
|
ERROR_MSG="$ERROR_MSG\nMissing maintainer's email. Use --maintainer-email."
|
||||||
|
fi
|
||||||
|
if [ "$MISSING_INFO" -eq 1 ]; then
|
||||||
|
exit_module "$MISSING_INFO" "$ERROR_MSG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
TEMP=`mktemp -d`
|
||||||
|
mkdir -p $TEMP/DEBIAN
|
||||||
|
|
||||||
|
echo "Package: $PACKAGE_NAME" > $TEMP/DEBIAN/control
|
||||||
|
echo "Version: $PACKAGE_VERSION" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Architecture: all" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Maintainer: $MAINTAINER_NAME <$MAINTAINER_EMAIL>" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Installed-Size: $(echo "$(stat -c %s "$PROJECT_NAME".love) / 1024" | bc)" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Depends: love (>= $LOVE_VERSION)" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Priority: extra" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Homepage: $PROJECT_HOMEPAGE" >> $TEMP/DEBIAN/control
|
||||||
|
echo "Description: $PROJECT_DESCRIPTION" >> $TEMP/DEBIAN/control
|
||||||
|
chmod 0644 $TEMP/DEBIAN/control
|
||||||
|
|
||||||
|
DESKTOP=$TEMP/usr/share/applications/"$PACKAGE_NAME".desktop
|
||||||
|
mkdir -p $TEMP/usr/share/applications
|
||||||
|
echo "[Desktop Entry]" > $DESKTOP
|
||||||
|
echo "Name=$PROJECT_NAME" >> $DESKTOP
|
||||||
|
echo "Comment=$PROJECT_DESCRIPTION" >> $DESKTOP
|
||||||
|
echo "Exec=$PACKAGE_NAME" >> $DESKTOP
|
||||||
|
echo "Type=Application" >> $DESKTOP
|
||||||
|
echo "Categories=Game;" >> $DESKTOP
|
||||||
|
echo "Icon=love" >> $DESKTOP
|
||||||
|
chmod 0644 $DESKTOP
|
||||||
|
|
||||||
|
PACKAGE_DIR=/usr/share/games/"$PACKAGE_NAME"/
|
||||||
|
PACKAGE_LOC=$PACKAGE_NAME-$PACKAGE_VERSION.love
|
||||||
|
|
||||||
|
mkdir -p $TEMP"$PACKAGE_DIR"
|
||||||
|
cp "$LOVE_FILE" $TEMP"$PACKAGE_DIR""$PACKAGE_LOC"
|
||||||
|
chmod 0644 $TEMP"$PACKAGE_DIR""$PACKAGE_LOC"
|
||||||
|
|
||||||
|
BIN_LOC=/usr/bin/
|
||||||
|
mkdir -p $TEMP$BIN_LOC
|
||||||
|
echo "#!/usr/bin/env bash" > $TEMP$BIN_LOC"$PACKAGE_NAME"
|
||||||
|
echo "set -e" >> $TEMP$BIN_LOC"$PACKAGE_NAME"
|
||||||
|
echo "love $PACKAGE_DIR$PACKAGE_LOC" >> $TEMP$BIN_LOC"$PACKAGE_NAME"
|
||||||
|
chmod 0755 $TEMP$BIN_LOC"$PACKAGE_NAME"
|
||||||
|
|
||||||
|
cd $TEMP
|
||||||
|
for line in $(find usr/ -type f); do
|
||||||
|
md5sum $line >> $TEMP/DEBIAN/md5sums
|
||||||
|
done
|
||||||
|
chmod 0644 $TEMP/DEBIAN/md5sums
|
||||||
|
|
||||||
|
for line in $(find usr/ -type d); do
|
||||||
|
chmod 0755 $line
|
||||||
|
done
|
||||||
|
|
||||||
|
fakeroot dpkg-deb -b $TEMP "$RELEASE_DIR"/"$PACKAGE_NAME"-"$PACKAGE_VERSION"_all.deb
|
||||||
|
cd "$RELEASE_DIR"
|
||||||
|
rm -rf $TEMP
|
||||||
|
|
||||||
|
|
||||||
|
remove_love_file
|
||||||
|
exit_module
|
||||||
|
|
Reference in New Issue
Block a user