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.
|
||||
By default, it is the name of your project converted to lowercase,
|
||||
with eventual spaces replaced by dashes.
|
||||
`--version` Set the version of your package.
|
||||
`--package-version` Set the version of your package.
|
||||
|
||||
#### ANDROID
|
||||
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,
|
||||
with eventual spaces replaced by dashes.
|
||||
.TP
|
||||
.B \-\-version \fIversion\fR
|
||||
.B \-\-package\-version \fIversion\fR
|
||||
Set the version of your package.
|
||||
.SH ANDROID
|
||||
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
|
||||
|
||||
## SCRIPT_ARGS="a; osname:"
|
||||
SCRIPT_ARGS="l; w."
|
||||
SCRIPT_ARGS="l; d; w."
|
||||
|
||||
## Windows
|
||||
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
|
||||
## SHORT_HELP=" -a Create an executable for a
|
||||
## --osname Create an executable for osname"
|
||||
SHORT_HELP=" -l Create a plain Love file
|
||||
-d Create a Debian package
|
||||
-w, Create a Windows application
|
||||
-w32 Create a Windows x86 application
|
||||
-w64 Create a Windows x64 application"
|
||||
@@ -184,6 +188,8 @@ do
|
||||
## fi
|
||||
if [ "$OPTOPT" = "l" ]; then
|
||||
source "$PLATFORMS_DIR"/love.sh
|
||||
elif [ "$OPTOPT" = "d" ]; then
|
||||
source "$PLATFORMS_DIR"/debian.sh
|
||||
elif [ "$OPTOPT" = "w" ]; then
|
||||
if [ "$OPTARG" = "32" ]; then
|
||||
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