47 lines
1.3 KiB
Bash
Executable File
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."
|