You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

54 lines
1.7 KiB

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
readonly OUT="${1:-../../build/devilutionx.ipk}"
readonly IN="${2:-../../build/devilutionx.dge}"
readonly PKG_TARGET=devilutionx
readonly TMP="tmp/${PKG_TARGET}"
pkg_control_get() {
sed -n control -e 's/^.*'"$1"': //p'
}
readonly PKG_SECTION="$(pkg_control_get Section)"
readonly PKG_INSTALL_DIR="home/retrofw/${PKG_SECTION}/${PKG_TARGET}"
readonly PKG_LOCAL_DIR="home/retrofw/.local/share/diasurgical/devilution"
readonly PKG_MENU_LNK_OUT="home/retrofw/apps/gmenu2x/sections/${PKG_SECTION}/${PKG_TARGET}.lnk"
echo 1>&2 Packaging ${OUT} from ${TMP}...
set -x
rm -rf "${TMP}"
mkdir -p "${TMP}"
# data.tar.gz
mkdir -p "${TMP}/root/${PKG_INSTALL_DIR}" "${TMP}/root/${PKG_LOCAL_DIR}"
cp "$IN" "${TMP}/root/${PKG_INSTALL_DIR}/${PKG_TARGET}.dge"
cp ../resources/Diablo_32.png "${TMP}/root/${PKG_INSTALL_DIR}/devilutionx.png"
cp devilutionx.man.txt ../resources/CharisSILB.ttf ../resources/LICENSE.CharisSILB.txt "${TMP}/root/${PKG_INSTALL_DIR}"
cp diablo.ini "${TMP}/root/${PKG_LOCAL_DIR}/diablo.ini"
mkdir -p "${TMP}/root/$(dirname "$PKG_MENU_LNK_OUT")"
printf "%s\n" \
"title=DevilutionX" \
"description=$(pkg_control_get Description)" \
"exec=/${PKG_INSTALL_DIR}/${PKG_TARGET}.dge" \
> "${TMP}/root/${PKG_MENU_LNK_OUT}"
tar --owner=0 --group=0 -czvf "${TMP}/data.tar.gz" -C "${TMP}/root/" .
# control.tar.gz
sed -e "s/^Version:.*/Version: $(date +%Y%m%d)/" control > "${TMP}/control"
printf "%s\n" \
"/$PKG_MENU_LNK_OUT" \
"/${PKG_LOCAL_DIR}/diablo.ini" \
>> ${TMP}/conffiles
tar --owner=0 --group=0 -czvf "${TMP}/control.tar.gz" -C "${TMP}/" control conffiles
printf '2.0\n' > "${TMP}/debian-binary"
ar r "$OUT" \
"${TMP}/control.tar.gz" \
"${TMP}/data.tar.gz" \
"${TMP}/debian-binary"