mirror of
https://gitee.com/spark-store-project/uos-packaging-tools
synced 2025-10-09 11:22:22 +08:00
!1 add support for zstd compressed deb package.
Merge pull request !1 from Shiroko/N/A
This commit is contained in:
commit
7664235e87
@ -1,15 +1,43 @@
|
|||||||
#/bin/bash
|
#!/bin/bash
|
||||||
TMPDIR="/tmp"
|
TMPDIR="/tmp"
|
||||||
|
|
||||||
unpack_package() {
|
unpack_package() {
|
||||||
DEBPATH="$1"
|
DEBPATH="$1"
|
||||||
package_name=$(dpkg-deb -f "$DEBPATH" Package)
|
ABS_DEBPATH="$(readlink -f "$DEBPATH")"
|
||||||
OUTPATH=$(dirname "$DEBPATH")
|
OUTPATH=$(dirname "$DEBPATH")
|
||||||
mkdir -p "$OUTPATH/$package_name/DEBIAN/"
|
ABS_OUTPATH="$(readlink -f "$OUTPATH")"
|
||||||
dpkg -e "$DEBPATH" "$OUTPATH/$package_name/DEBIAN/"
|
local fields=$(LC_ALL=C dpkg -f "$DEBPATH" 2>&1)
|
||||||
dpkg -X "$DEBPATH" "$OUTPATH/$package_name/"
|
|
||||||
|
if [[ "$(echo "$fields" | wc -l)" == 1 ]] && [[ "$fields" =~ "tar.zst" ]]; then
|
||||||
|
local tempd=$(mktemp -d)
|
||||||
|
[[ ! -d "$tempd" ]] && exit -1
|
||||||
|
pushd "$tempd"
|
||||||
|
ar x "$ABS_DEBPATH" control.tar.zst
|
||||||
|
ar x "$ABS_DEBPATH" data.tar.zst
|
||||||
|
mkdir DEBIAN
|
||||||
|
[ -f control.tar.zst ] && tar --use-compress-program=unzstd -xvf control.tar.zst -C DEBIAN
|
||||||
|
local package_name="$(grep Package DEBIAN/control | sed 's/^Package: //g')"
|
||||||
|
mkdir -p "$ABS_OUTPATH/$package_name/"
|
||||||
|
mv DEBIAN "$ABS_OUTPATH/$package_name/"
|
||||||
|
mv data.tar.zst "$ABS_OUTPATH/$package_name"
|
||||||
|
popd
|
||||||
|
|
||||||
|
rm -rf "$tempd"
|
||||||
|
|
||||||
|
pushd "$OUTPATH/$package_name/"
|
||||||
|
[[ -f data.tar.zst ]] && tar --use-compress-program=unzstd -xvf data.tar.zst
|
||||||
|
rm -f data.tar.zst
|
||||||
|
popd
|
||||||
|
else
|
||||||
|
package_name=$(dpkg-deb -f "$DEBPATH" Package)
|
||||||
|
mkdir -p "$OUTPATH/$package_name/DEBIAN/"
|
||||||
|
|
||||||
|
dpkg -e "$DEBPATH" "$OUTPATH/$package_name/DEBIAN/"
|
||||||
|
dpkg -X "$DEBPATH" "$OUTPATH/$package_name/"
|
||||||
|
fi
|
||||||
|
|
||||||
notify-send "$package_name 解包已完成" -i /usr/share/icons/uos-packaging-tools.png
|
notify-send "$package_name 解包已完成" -i /usr/share/icons/uos-packaging-tools.png
|
||||||
|
|
||||||
echo "---------------------------------------------------------------------------"
|
echo "---------------------------------------------------------------------------"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user