scripts/extract: simplify, copy file or dir by default

This commit is contained in:
MilhouseVH 2018-02-27 01:35:36 +00:00
parent d246e986d2
commit 1fc3ecc88c

View File

@ -28,47 +28,48 @@ fi
[ -z "$PKG_URL" -o -z "$PKG_SOURCE_NAME" ] && exit 1 [ -z "$PKG_URL" -o -z "$PKG_SOURCE_NAME" ] && exit 1
[ ! -d "$SOURCES/$1" -o ! -d "$2" ] && exit 1 [ ! -d "$SOURCES/$1" -o ! -d "$2" ] && exit 1
for pattern in .tar.gz .tar.xz .tar.bz2 .tgz .txz .tbz .7z .zip; do if [[ ${PKG_URL} =~ ^file:// ]]; then
if [[ $PKG_SOURCE_NAME =~ ${pattern//./\\.}$ ]]; then FULL_SOURCE_PATH="$PKG_SOURCE_NAME"
f="$SOURCES/$1/$PKG_SOURCE_NAME" else
if [ ! -f $f ]; then FULL_SOURCE_PATH="$SOURCES/$1/$PKG_SOURCE_NAME"
echo "error: File $PKG_SOURCE_NAME doesn't exist in package $1 sources directory" fi
echo "Have you called scripts/extract before scripts/get ?"
exit 1 if [ ! -f "$FULL_SOURCE_PATH" -a ! -d "$FULL_SOURCE_PATH" ]; then
fi echo "error: File $PKG_SOURCE_NAME doesn't exist for package $1"
case $PKG_SOURCE_NAME in echo "Have you called scripts/extract before scripts/get ?"
*.tar) exit 1
tar xf $f -C $2 fi
;;
*.tar.bz2 | *.tbz) case $PKG_SOURCE_NAME in
tar xjf $f -C $2 *.tar)
;; tar xf $FULL_SOURCE_PATH -C $2
*.tar.gz | *.tgz) ;;
tar xzf $f -C $2 *.tar.bz2 | *.tbz)
;; tar xjf $FULL_SOURCE_PATH -C $2
*.tar.xz | *.txz) ;;
tar xJf $f -C $2 *.tar.gz | *.tgz)
;; tar xzf $FULL_SOURCE_PATH -C $2
*.7z) ;;
mkdir -p $2/$1 *.tar.xz | *.txz)
7z x -o$2/$1 $f tar xJf $FULL_SOURCE_PATH -C $2
;; ;;
*.zip) *.7z)
unzip -q $f -d $2 mkdir -p $2/$1
;; 7z x -o$2/$1 $FULL_SOURCE_PATH
*.diff | *.patch) ;;
cat $f | patch -d $2 -p1 *.zip)
;; unzip -q $FULL_SOURCE_PATH -d $2
*.diff.bz2 | *.patch.bz2 | patch-*.bz2) ;;
bzcat $f | patch -d $2 -p1 *.diff | *.patch)
;; cat $FULL_SOURCE_PATH | patch -d $2 -p1
*.diff.gz | *.patch.gz | patch-*.gz) ;;
zcat $f | patch -d $2 -p1 *.diff.bz2 | *.patch.bz2 | patch-*.bz2)
;; bzcat $FULL_SOURCE_PATH | patch -d $2 -p1
*) ;;
cp -pPR $f $2 *.diff.gz | *.patch.gz | patch-*.gz)
;; zcat $FULL_SOURCE_PATH | patch -d $2 -p1
esac ;;
break *)
fi cp -pPR $FULL_SOURCE_PATH $2
done ;;
esac