#!/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" 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