This repository has been archived on 2023-10-10. You can view files and clone it, but cannot push or open issues/pull-requests.
dafuq/bin/dafuq-make

47 lines
1.3 KiB
Bash
Executable File

#!/tools/bin/bash
NAME=$1
DESTDIR=/tmp/dafuq/$NAME/root
INSTALLCMD="make install DESTDIR=$DESTDIR"
if [ ! -z "$2" ]; then
INSTALLCMD=$(echo "$2" | sed -e "s:%DESTDIR%:$DESTDIR:g")
echo "[i] Custom installation command: $INSTALLCMD"
fi
rm -rf /tmp/dafuq/$NAME 2>/dev/null
echo "[i] Packaging $NAME..."
mkdir -p $DESTDIR
echo "[i] Making..."
/tools/bin/bash -c "$INSTALLCMD"
echo "[i] Taking note of directories..."
PKG_DIRS=$(find $DESTDIR -type d)
PKG_DIRS_CREATE=""
for dir in $PKG_DIRS; do
dir_root=$(echo $dir | sed -e "s:$DESTDIR::g")
if [ ! -e $dir_root ]; then
PKG_DIRS_CREATE="$PKG_DIRS_CREATE $dir_root"
fi
done
echo "[i] Taking note of files..."
PKG_FILES=$(find $DESTDIR -type f -o -type l)
echo "[i] Creating manifest..."
PKG_MANIFEST="/tmp/dafuq/$NAME/manifest"
echo "name: $NAME" >> $PKG_MANIFEST
echo "installcmd: $INSTALLCMD" >> $PKG_MANIFEST
echo "built: $(date)" >> $PKG_MANIFEST
for dir in $PKG_DIRS_CREATE; do
echo "dir: $dir" >> $PKG_MANIFEST
done
for f in $PKG_FILES; do
echo "file: $(echo $f | sed -e "s:$DESTDIR::g") $(sha256sum $f | cut -d" " -f 1) $(stat -c "%a %U:%G" $f)" >> $PKG_MANIFEST
done
echo "[i] Compressing package..."
tar cJf /usr/dafuq/packages/$NAME.tar.xz -C /tmp/dafuq/$NAME manifest root
echo "[i] Cleaning up..."
rm -rf /tmp/dafuq/$NAME 2>/dev/null
echo "[i] Done."