summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McCurry2016-11-13 12:25:46 -0500
committerDan McCurry2016-11-13 12:25:46 -0500
commit7b5e55b3f55a0d5be2b7727274f0de7e2db3dd2d (patch)
treea2596a3123c655b1c36e802ca4448b36a5b48af7
downloadaur-7b5e55b3f55a0d5be2b7727274f0de7e2db3dd2d.tar.gz
initial commit
-rw-r--r--.SRCINFO20
-rw-r--r--PKGBUILD68
-rw-r--r--duke-nukem9
3 files changed, 97 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..8e001ac6cad0
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,20 @@
+pkgbase = gog-duke-nukem
+ pkgdesc = 2D platform game featuring the adventures of Duke Nukem.
+ pkgver = 2.0.0.2
+ pkgrel = 1
+ url = http://www.gog.com/
+ arch = any
+ groups = games
+ license = custom
+ depends = dosbox
+ depends = libpng12
+ depends = unionfs-fuse
+ optdepends = gendesk
+ noextract = gog_duke_nukem_2.0.0.2.sh
+ source = local://gog_duke_nukem_2.0.0.2.sh
+ source = local://duke-nukem
+ sha256sums = a703ee090b68a2bbab70976390d7707089a7bd310975384d0f137b5e14e55831
+ sha256sums = 6b902da2ff83d99ba43299e96e70aa7229ef0168ee6ec2411e5f5d752c4d1437
+
+pkgname = gog-duke-nukem
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5976274a6410
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,68 @@
+# Maintainer : Dan McCurry <dan.mccurry at linux dot com>
+
+pkgname=gog-duke-nukem
+# Trim gog- prefix from launcher
+_appname=$(echo ${pkgname} | sed -e 's/gog-//')
+pkgver=2.0.0.2
+pkgrel=1
+pkgdesc="2D platform game featuring the adventures of Duke Nukem."
+arch=('any')
+url="http://www.gog.com/" # As of this PKGBUILD, Duke Nukem is no longer in store
+license=("custom")
+groups=("games")
+source=("local://gog_duke_nukem_${pkgver}.sh"
+ "local://${_appname}")
+noextract=("gog_duke_nukem_${pkgver}.sh")
+sha256sums=('a703ee090b68a2bbab70976390d7707089a7bd310975384d0f137b5e14e55831'
+ '6b902da2ff83d99ba43299e96e70aa7229ef0168ee6ec2411e5f5d752c4d1437')
+depends=('dosbox' 'libpng12' 'unionfs-fuse')
+optdepends=('gendesk')
+PKGEXT=.pkg.tar
+
+prepare() {
+ cd ${srcdir}
+
+ # Create menu icons
+ if which gendesk &>/dev/null; then
+ gendesk -f -n --pkgname "${_appname}" \
+ --pkgdesc "${pkgdesc}" \
+ --name='Duke Nukem' \
+ --exec="/usr/bin/${_appname}" \
+ --categories "Application;Game;"
+ else
+ warning "gendesk not found!"
+ warning "Menu icons not generated."
+ fi
+
+ # extract mojo installer and suppress header warning for unzip
+ unzip -o "$(echo ${pkgname} | sed -e 's/-/_/g')_${pkgver}.sh" \
+ "data/noarch/*" -x "*dosbox/*" "*start.sh*" \
+ "*installer_readme.txt*" "*dosbox*.tar.gz" "*gog_com.shlib*" \
+ "*xdg-utils/*" "*gameinfo*" || if [ $? -eq 1 ]; then
+ msg "Data extraction successful.";
+ fi
+
+ for i in "${srcdir}/data/noarch/dosbox*.conf"; do
+ sed -i "s/\(mount C \"\)\(data\"\)/\1~\/.gog\/${_appname}\/game\/\2/" $i
+ done
+}
+
+package() {
+ mkdir -p "${pkgdir}/opt/gog/${_appname}"
+ mkdir -p "${pkgdir}/usr/share/pixmaps"
+ mkdir -p "${pkgdir}/usr/share/licenses/${pkgname}"
+
+ cd ${srcdir}
+ cp -r ./data/noarch/* "${pkgdir}"/opt/gog/${_appname}
+ install -Dm644 "./${_appname}.desktop" \
+ "${pkgdir}/usr/share/applications/${_appname}.desktop"
+
+ cd ${srcdir}/data/noarch
+ ln -s "/opt/gog/${_appname}/support/icon.png" \
+ "${pkgdir}/usr/share/pixmaps/${_appname}.png"
+ ln -s "/opt/gog/${_appname}/docs/End User License Agreement.txt" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/EULA"
+
+ install -Dm755 "${srcdir}/${_appname}" \
+ "${pkgdir}/usr/bin/${_appname}"
+}
diff --git a/duke-nukem b/duke-nukem
new file mode 100644
index 000000000000..031480c2eb1f
--- /dev/null
+++ b/duke-nukem
@@ -0,0 +1,9 @@
+#!/usr/bin/bash
+gogdir="/opt/gog/duke-nukem"
+homedir="$HOME/.gog/duke-nukem"
+mkdir -p "$homedir"/{game,config/data}
+
+unionfs -o cow,relaxed_permissions "$homedir/config=RW:$gogdir=RO" "$homedir/game"
+dosbox -conf "$homedir/game/dosbox_duke.conf" \
+ -conf "$homedir/game/dosbox_duke_single.conf"
+fusermount -u "$homedir/game"