Add AppImage builder

This commit is contained in:
Bart van Strien 2016-12-02 19:16:30 +00:00
parent f6b078ca36
commit 16aa92512e
4 changed files with 64 additions and 0 deletions

View File

@ -1,3 +1,6 @@
^snap/love-prepared/
^snap/love_.*\.snap$
^tarball/love-.*\.tar\.gz$
^appimage/love-prepared/
^appimage/.*\.AppImage$
^appimage/AppRun$

View File

@ -20,4 +20,11 @@ to do everything for you, why not just do it manually?! Seriously though, you
can still use snapcraft to build this, but at that point it just acts like a
fancy mksquashfs, and an extra dependency at that.
## appimage ##
`appimage` builds [AppImages][AppImage], unsurprisingly. It uses binaries from
[AppImageKit][], though you can build them yourself if you want to. And hey,
this actually seems to work, too!
[snap]: http://snapcraft.io/
[AppImage]: http://appimage.org/
[AppImageKit]: https://github.com/probonopd/AppImageKit

50
appimage/build.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/bash
set -eo >/dev/null
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <version>"
exit 0
fi
VERSION="$1"
if ! test -f ../tarball/love-${VERSION}-amd64.tar.gz; then
echo "No tarball found for $VERSION"
exit 1
fi
download_if_needed() {
if ! test -f "$1"; then
if ! curl -L -o "$1" https://github.com/probonopd/AppImageKit/releases/download/continuous/"$1"; then
echo "Failed to download appimagetool"
echo "Please supply it manually"
exit 1
fi
chmod +x "$1"
fi
}
download_if_needed appimagetool-x86_64.AppImage
download_if_needed AppRun
# Extract the tarball build into a folder
rm -rf love-prepared
mkdir love-prepared
tar xf ../tarball/love-${VERSION}-amd64.tar.gz -C love-prepared --strip-components=1
cd love-prepared
# Add our small wrapper script (yay, more wrappers), and AppRun
cp ../wrapper usr/bin/wrapper-love
cp ../AppRun .
# Add our desktop file
sed -e 's/%BINPREFIX%/wrapper-/' -e 's/%ICONPREFIX%//' love.desktop.in > love.desktop
rm love.desktop.in
# Add a DirIcon
cp love.svg .DirIcon
# Now build the final AppImage
cd ..
./appimagetool-x86_64.AppImage love-prepared love-${VERSION}-x86_64.AppImage

4
appimage/wrapper Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
# For some reason this runs from the usr subdirectory
exec ../love "$@"