48 lines
1.5 KiB
Bash
Executable File
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 |