From 022bd6258d2dbd0c79da86efbabcc327c7e78a2c Mon Sep 17 00:00:00 2001 From: emmett1 Date: Sat, 5 Aug 2017 21:23:56 +0800 Subject: [PATCH] updated --- buildpkg | 51 ++++++++++++++++++++++++++++++--------------------- functions | 1 + 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/buildpkg b/buildpkg index 9c5cd4a..fb2251b 100755 --- a/buildpkg +++ b/buildpkg @@ -85,35 +85,43 @@ preparesource() { SRC=$WORK_DIR/$name/src PKG=$WORK_DIR/$name/pkg - if [ -d $WORK_DIR/$name ]; then - rm -fr $WORK_DIR/$name - fi + [ -d "$WORK_DIR/$name" ] && rm -fr "$WORK_DIR/$name" mkdir -p $SRC $PKG for sources in ${source[@]}; do if [[ $sources =~ ^(http|https|ftp)://.*/(.+) ]]; then tarballname=$(echo $sources | rev | cut -d / -f 1 | rev) - case $tarballname in - *.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm) - COMMAND="$EXTPROG -p -o -C $SRC -xf $SOURCE_DIR/$tarballname" - MODE="Unpacking" ;; - *) - COMMAND="cp $SOURCE_DIR/$tarballname $SRC" - MODE="Preparing" ;; - esac + NO_EXTRACT="" + for i in ${noextract[@]}; do + if [ "$i" = "$tarballname" ]; then + NO_EXTRACT=yes + cp $SOURCE_DIR/$tarballname $SRC && msg "Preparing ${color_green}$tarballname${color_reset}..." || ERROR_PREPARE_SOURCE=yes + break + fi + done + if [ ! "$NO_EXTRACT" ]; then + case $tarballname in + *.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm) + COMMAND="$EXTPROG -p -o -C $SRC -xf $SOURCE_DIR/$tarballname" + MODE="Unpacking" ;; + *) + COMMAND="cp $SOURCE_DIR/$tarballname $SRC" + MODE="Preparing" ;; + esac + + $COMMAND - $COMMAND - - if [ $? != 0 ]; then - msg "$MODE ${color_red}$tarballname${color_reset} failed." - clearworkdir - exitscript1 - else - msg "$MODE ${color_green}$tarballname${color_reset} success." - fi + if [ $? != 0 ]; then + msg "$MODE ${color_red}$tarballname${color_reset} failed." + clearworkdir + exitscript1 + else + msg "$MODE ${color_green}$tarballname${color_reset}..." + fi + fi else - cp $sources $SRC || ERROR_PREPARE_SOURCE=yes + cp $sources $SRC && msg "Preparing ${color_green}$sources${color_reset}..." || ERROR_PREPARE_SOURCE=yes fi done @@ -534,6 +542,7 @@ main() { ### EXTRACT ONLY ### if [ "$EXTRACT_ONLY" ]; then + getsource preparesource exit 0 fi diff --git a/functions b/functions index d3991c0..9f85728 100644 --- a/functions +++ b/functions @@ -123,6 +123,7 @@ getpkginfo() { conflict=$(cat $BUILD_SCRIPT | grep ^'# conflict' | tr -d ':' | cut -d ' ' -f 3-) depends=$(cat $BUILD_SCRIPT | grep ^'# depends' | tr -d ':' | cut -d ' ' -f 3-) makedepends=$(cat $BUILD_SCRIPT | grep ^'# makedepends' | tr -d ':' | cut -d ' ' -f 3-) + noextract=$(cat $BUILD_SCRIPT | grep ^'# noextract' | tr -d ':' | cut -d ' ' -f 3-) }