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
if [ ! -f "$FULL_SOURCE_PATH" -a ! -d "$FULL_SOURCE_PATH" ]; then
echo "error: File $PKG_SOURCE_NAME doesn't exist for package $1"
echo "Have you called scripts/extract before scripts/get ?" echo "Have you called scripts/extract before scripts/get ?"
exit 1 exit 1
fi fi
case $PKG_SOURCE_NAME in
case $PKG_SOURCE_NAME in
*.tar) *.tar)
tar xf $f -C $2 tar xf $FULL_SOURCE_PATH -C $2
;; ;;
*.tar.bz2 | *.tbz) *.tar.bz2 | *.tbz)
tar xjf $f -C $2 tar xjf $FULL_SOURCE_PATH -C $2
;; ;;
*.tar.gz | *.tgz) *.tar.gz | *.tgz)
tar xzf $f -C $2 tar xzf $FULL_SOURCE_PATH -C $2
;; ;;
*.tar.xz | *.txz) *.tar.xz | *.txz)
tar xJf $f -C $2 tar xJf $FULL_SOURCE_PATH -C $2
;; ;;
*.7z) *.7z)
mkdir -p $2/$1 mkdir -p $2/$1
7z x -o$2/$1 $f 7z x -o$2/$1 $FULL_SOURCE_PATH
;; ;;
*.zip) *.zip)
unzip -q $f -d $2 unzip -q $FULL_SOURCE_PATH -d $2
;; ;;
*.diff | *.patch) *.diff | *.patch)
cat $f | patch -d $2 -p1 cat $FULL_SOURCE_PATH | patch -d $2 -p1
;; ;;
*.diff.bz2 | *.patch.bz2 | patch-*.bz2) *.diff.bz2 | *.patch.bz2 | patch-*.bz2)
bzcat $f | patch -d $2 -p1 bzcat $FULL_SOURCE_PATH | patch -d $2 -p1
;; ;;
*.diff.gz | *.patch.gz | patch-*.gz) *.diff.gz | *.patch.gz | patch-*.gz)
zcat $f | patch -d $2 -p1 zcat $FULL_SOURCE_PATH | patch -d $2 -p1
;; ;;
*) *)
cp -pPR $f $2 cp -pPR $FULL_SOURCE_PATH $2
;; ;;
esac esac
break
fi
done