Unraid-SlackPack/source/mkpkg
2018-01-13 00:43:39 -07:00

48 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: mkpkg directory_name"
else
DIR="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/${@}"
TMPDIR=/tmp/tmp.$(( $RANDOM * 19318203981230 + 40 ))
PLUGIN=$(basename ${DIR})
ARCHIVE="$(dirname $(dirname ${DIR}))/archive"
DESTDIR="$TMPDIR/usr/local/emhttp/plugins/${PLUGIN}"
PLG_FILE="$(dirname $(dirname ${DIR}))/plugin/${PLUGIN}.plg"
VERSION=$(date +"%Y.%m.%d")
ARCH="-x86_64-1"
PACKAGE="${ARCHIVE}/${PLUGIN}-${VERSION}${ARCH}.txz"
MD5="${ARCHIVE}/${PLUGIN}-${VERSION}${ARCH}.md5"
for x in '' a b c d e d f g h ; do
PKG="${ARCHIVE}/${PLUGIN}-${VERSION}${x}${ARCH}.txz"
if [[ ! -f $PKG ]]; then
PACKAGE=$PKG
VERSION="${VERSION}${x}"
MD5="${ARCHIVE}/${PLUGIN}-${VERSION}${ARCH}.md5"
break
fi
done
sed -i -e "s#\(ENTITY\s*version[^\"]*\).*#\1\"${VERSION}\">#" "$PLG_FILE"
sed -i "/##&name/a\###${VERSION}" "$PLG_FILE"
mkdir -p "${TMPDIR}/"
cd "$DIR"
cp --parents -f $(find . -type f ! \( -iname "pkg_build.sh" -o -iname "sftp-config.json" -o -iname ".DS_Store" \) ) "${TMPDIR}/"
cd "$TMPDIR/"
makepkg -l y -c y "${PACKAGE}"
cd "$ARCHIVE/"
md5sum $(basename "$PACKAGE") > "$MD5"
rm -rf "$TMPDIR"
# Verify and install plugin package
sum1=$(md5sum "${PACKAGE}")
sum2=$(cat "$MD5")
if [ "${sum1:0:32}" != "${sum2:0:32}" ]; then
echo "Checksum mismatched.";
rm "$MD5" "${PACKAGE}"
else
echo "Checksum matched."
fi
fi