diff --git a/pkgbuild b/pkgbuild index 54cb190..d585a80 100755 --- a/pkgbuild +++ b/pkgbuild @@ -200,7 +200,7 @@ run_build() { pushd $SRC >/dev/null - (set -e -x; build) + (set -e -x; build 2>&1) if [ $? != 0 ]; then msgerr "Build '$name-$version-$release' failed." @@ -299,8 +299,11 @@ backupconf() { packaging() { local FILE f - for f in ${INCLUDEINPKG[@]}; do - [ -f $f ] && install -m644 $f $PKG/.pkg$f + for FILE in ${INCLUDEINPKG[@]}; do + if [ -f $FILE ]; then + install -m644 $FILE $PKG/.pkg$FILE + addtotar+=(.pkg$FILE) + fi done pushd $PKG >/dev/null @@ -316,12 +319,6 @@ packaging() { backupconf fi - for FILE in ${INCLUDEINPKG[@]}; do - if [ -f .pkg$FILE ]; then - addtotar+=(.pkg$FILE) - fi - done - [ "$FORCE_REBUILD" ] && rm -f "$PACKAGE_DIR/$PKGNAME" case $COMPRESSION_MODE in @@ -338,9 +335,8 @@ packaging() { fi tar -tvf $PACKAGE_DIR/$PKGNAME | sort -k 6 - pkgsize="$(ls -lh $PACKAGE_DIR/$PKGNAME | awk '{print $5}')" - msg "Successfully created package '$PKGNAME'. (${pkgsize})" - + msg "Successfully created package '$PKGNAME'. ($(ls -lh $PACKAGE_DIR/$PKGNAME | awk '{print $5}'))" + popd >/dev/null [ -f .pkgfiles ] || generate_pkgfiles @@ -419,14 +415,14 @@ set_options() { !emptydirs) KEEP_EMPTYDIR=0;; strip) STRIP_BINARY=1 ;; !strip) STRIP_BINARY=0 ;; - zipman) ZIP_MAN=1 ;; - !zipman) ZIP_MAN=0 ;; - buildflags) BUILD_FLAGS=1 ;; - !buildflags) BUILD_FLAGS=0 ;; - makeflags) MAKE_FLAGS=1 ;; - !makeflags) MAKE_FLAGS=0 ;; - mdsum) CHECK_MDSUM=1 ;; - !mdsum) CHECK_MDSUM=0 ;; + zipman) ZIP_MAN=1 ;; + !zipman) ZIP_MAN=0 ;; + buildflags) BUILD_FLAGS=1 ;; + !buildflags) BUILD_FLAGS=0 ;; + makeflags) MAKE_FLAGS=1 ;; + !makeflags) MAKE_FLAGS=0 ;; + mdsum) CHECK_MDSUM=1 ;; + !mdsum) CHECK_MDSUM=0 ;; esac done } @@ -555,17 +551,9 @@ main() { exit 1 fi - if [ "$CUSTOM_SOURCE_DIR" ]; then - SOURCE_DIR="$CUSTOM_SOURCE_DIR" - fi - - if [ "$CUSTOM_PACKAGE_DIR" ]; then - PACKAGE_DIR="$CUSTOM_PACKAGE_DIR" - fi - - if [ "$CUSTOM_WORK_DIR" ]; then - WORK_DIR="$CUSTOM_WORK_DIR" - fi + [ "$CUSTOM_SOURCE_DIR" ] && SOURCE_DIR="$CUSTOM_SOURCE_DIR" + [ "$CUSTOM_PACKAGE_DIR" ] && PACKAGE_DIR="$CUSTOM_PACKAGE_DIR" + [ "$CUSTOM_WORK_DIR" ] && WORK_DIR="$CUSTOM_WORK_DIR" checkdir "$SOURCE_DIR" "$PACKAGE_DIR" "$WORK_DIR" @@ -588,12 +576,11 @@ main() { case $COMPRESSION_MODE in gz|bz2|xz) PKGNAME="$name-$version-$release.spkg.tar.$COMPRESSION_MODE" ;; - *) msgerr "Invalid compression mode. ($COMPRESSION_MODE)" - exit 1 ;; + *) msgerr "Invalid compression mode. ($COMPRESSION_MODE)"; exit 1 ;; esac # generate .pkgfiles - if [ "$GENPKGFILES" = "yes" ]; then + if [ "$GENPKGFILES" ]; then generate_pkgfiles exit 0 fi diff --git a/scratch b/scratch index 6f5bd33..594ce33 100755 --- a/scratch +++ b/scratch @@ -297,7 +297,7 @@ scratch_depends() { msgerr "Port '$1' not exist." exit 1 fi - #isinstalled ${depends[0]} + for dep in ${depends[@]}; do if isinstalled $dep; then msginst "$dep" @@ -466,30 +466,24 @@ scratch_foreignpkg() { } scratch_info() { - [ $1 ] || return 0 - version="-" - release="-" - iver="-" - irel="-" - if isinstalled $1; then - iver=$(installed_pkg_info version $1) - irel=$(installed_pkg_info release $1) - INSTALLED=1 - fi - portpath=$(getportpath $1) - if [ -n "$portpath" ]; then - . $portpath/$BUILD_SCRIPT - PORTEXIST=1 - else - portpath="-" - fi - if [ "$INSTALLED" != 1 ] && [ "$PORTEXIST" != 1 ]; then - return 0 - fi - echo -e "name: \t\t$1 \t$([[ $PORTEXIST = 1 ]] || echo \( foreignpkg \))" - echo -e "version: \t$version \t( installed: $iver )" - echo -e "release: \t$release \t( installed: $irel )" - echo -e "port path: \t$portpath" + needarg $@ + local pkg=$1 + ppath=$(getportpath $pkg) || return 1 + + . $ppath/$BUILD_SCRIPT + desc=$(grep "^# description[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# description[[:blank:]]*:[[:blank:]]*//') + url=$(grep "^# homepage[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# homepage[[:blank:]]*:[[:blank:]]*//') + maint=$(grep "^# maintainer[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# maintainer[[:blank:]]*:[[:blank:]]*//') + deps=$(get_depends $pkg | tr '\n' ' ') + + echo -e "Name: $pkg" + echo -e "Path: $ppath" + echo -e "Version: $version" + echo -e "Release: $release" + echo -e "Description: $desc" + echo -e "Homepage: $url" + echo -e "Maintainer: $maint" + echo -e "Dependencies: $deps" } scratch_trigger() { @@ -730,36 +724,29 @@ pre_triggers() { } scratch_build() { - local OPTS - if [ -z "$1" ]; then - echo "Please specify package to build." - return 1 - fi while [ "$1" ]; do - if [[ "$1" =~ ^-(f|w|m|o|x|l)$ ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--(force-rebuild|skip-mdsum|download|extract|keep-work|redownload|log)$ ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--(pkgdir|srcdir|logdir|workdir)=* ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^-. ]]; then - echo "Unrecognize option. ($1)" - return 1 - else - PKGNAME=$1 - fi + case $1 in + -i|-u|-r) continue;; + -*) OPTS+=($1);; + *) PKGNAME+=($1);; + esac shift done - pushd $(getportpath $PKGNAME) - if [ $? = 0 ]; then - settermtitle "Building $PKGNAME..." - pkgbuild ${OPTS[@]} || return 1 - settermtitle "Building $PKGNAME done" - else - echo "Package '$PKGNAME' not found." - return 1 - fi - return 0 + for P in ${PKGNAME[@]}; do + pushd $(getportpath $P) + if [ $? = 0 ]; then + settermtitle "Building $P..." + pkgbuild ${OPTS[@]} || { + settermtitle "Building $P failed" + return 1 + } + settermtitle "Building $P done" + else + echo "Package '$P' not found." + return 1 + fi + popd + done } scratch_install() { @@ -767,34 +754,23 @@ scratch_install() { needroot "Installing package" - if [ -z "$1" ]; then + while [ "$1" ]; do + case $1 in + -i|-u) ;; + -r) REINSTALL=1;; + -y|--yes) NOCONFIRM=1;; + -n|--no-dep) NO_DEP=1;; + --exclude=*) EXOPT=$1;; + -*) OPTS+=($1);; + *) PKGNAME+=($1);; + esac + shift + done + + if [ -z "$PKGNAME" ]; then echo "Please specify package(s) to install." return 1 fi - while [ "$1" ]; do - if [[ "$1" =~ ^-(c|v|l|-verbose|-ignore-conflict|-no-backup|-log)$ ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--(srcdir|pkgdir|logdir|workdir)=* ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--exclude=* ]]; then - EXOPT=$1 - elif [[ "$1" =~ ^--(no-preinstall|no-postinstall)$ ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^-(r|-reinstall)$ ]]; then - OPTS+=($1) - REINSTALL=1 - elif [[ "$1" =~ ^-(d|-no-dep)$ ]]; then - NO_DEP=1 - elif [[ "$1" = "--yes" ]] || [[ "$1" = "-y" ]]; then - NOCONFIRM=1 - elif [[ "$1" =~ ^-. ]]; then - echo "Unrecognize option. ($1)" - return 1 - else - PKGNAME+=($1) - fi - shift - done # use custom root location if [ "$ROOT_DIR" ]; then OPTS+=(--root=$ROOT_DIR) @@ -809,7 +785,7 @@ scratch_install() { else pushd $(getportpath $ii) settermtitle "Reinstalling $ii..." - pkgbuild ${OPTS[@]} + pkgbuild ${OPTS[@]} -r if [ $? != 0 ]; then error=1 break @@ -935,23 +911,19 @@ scratch_remove() { needroot "Removing package" - if [ -z "$1" ]; then + while [ "$1" ]; do + case $1 in + -y|--yes) NOCONFIRM=1;; + -*) OPTS+=($1);; + *) PKGNAME+=($1);; + esac + shift + done + + if [ -z "$PKGNAME" ]; then echo "Please specify package(s) to remove." return 1 fi - while [ "$1" ]; do - if [[ "$1" =~ ^--(no-postremove|no-preremove)$ ]]; then - OPTS+=($1) - elif [[ "$1" = "--yes" ]] || [[ "$1" = "-y" ]]; then - NOCONFIRM=1 - elif [[ "$1" =~ ^-. ]]; then - echo "Unrecognize option. ($1)" - return 1 - else - PKGNAME+=($1) - fi - shift - done # use custom root location if [ "$ROOT_DIR" ]; then OPTS+=(--root=$ROOT_DIR) @@ -1001,24 +973,14 @@ scratch_sysup() { needroot "Upgrading package" while [ "$1" ]; do - if [[ "$1" =~ ^--(no-postupgrade|no-preupgrade|no-backup|log)$ ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--(srcdir|pkgdir|logdir|workdir)=* ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--exclude=* ]]; then - EXOPT=$1 - elif [[ "$1" =~ ^-(c|v|l|-verbose|-ignore-conflict)$ ]]; then - OPTS+=($1) - elif [ "$1" = "--yes" ] || [ "$1" = "-y" ]; then - NOCONFIRM=1 - elif [ "$1" = "--no-dep" ] || [ "$1" = "-d" ]; then - NODEP=1 - elif [ "$1" = "--sync" ] || [ "$1" = "-s" ]; then - SYNC=1 - elif [[ "$1" =~ ^-. ]]; then - echo "Unrecognize option. ($1)" - exit 1 - fi + case $1 in + -i|-u|-r) ;; + -y|--yes) NOCONFIRM=1;; + -d|--no-dep) NODEP=1;; + -s|--sync) SYNC=1;; + --exclude=*) EXOPT+=($1);; + -*) OPTS+=($1);; + esac shift done @@ -1111,28 +1073,22 @@ scratch_upgrade() { needroot "Upgrading package" - needarg "$@" while [ "$1" ]; do - if [[ "$1" =~ ^--(no-postupgrade|no-preupgrade|no-backup|log)$ ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--(srcdir|pkgdir|logdir|workdir)=* ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^--exclude=* ]]; then - EXOPT=$1 - elif [[ "$1" =~ ^-(c|v|l|-ignore-conflict|-verbose) ]]; then - OPTS+=($1) - elif [[ "$1" =~ ^-(-no-dep|d)$ ]]; then - NO_DEP=1 - elif [[ "$1" = "--yes" ]] || [[ "$1" = "-y" ]]; then - NOCONFIRM=1 - elif [[ "$1" =~ ^-. ]]; then - echo "Unrecognize option. ($1)" - exit 1 - else - PKGNAME+=($1) - fi + case $1 in + -y|--yes) NOCONFIRM=1;; + -d|--no-dep) NO_DEP=1;; + --exclude=*) EXOPT=$1;; + -*) OPTS+=($1);; + *) PKGNAME+=($1);; + esac shift done + + if [ -z "$PKGNAME" ]; then + echo "Please specify package(s) to remove." + return 1 + fi + # use custom root location if [ "$ROOT_DIR" ]; then OPTS+=(--root=$ROOT_DIR) @@ -1256,7 +1212,7 @@ scratch_outdate() { fi done - [ ! "$OUTDATE" ] && msg "All package is up to date." + [ ! "$OUTDATE" ] && msg "All packages are up to date." } clearpkgcache() { @@ -1670,12 +1626,12 @@ shift for opt in $@; do case $opt in - --nocolor) nocolor ;; - --repo=*) PORT_REPO+=(${opt#*=}) ;; - --root=*) ROOT_DIR=(${opt#*=}) ;; - --*) MAINOPTS+=($opt) ;; - -*) for (( i=1; i<${#opt}; i++ )); do MAINOPTS+=(-${opt:$i:1}); done ;; - *) MAINOPTS+=($opt) ;; + --nocolor) nocolor;; + --repo=*) PORT_REPO+=(${opt#*=});; + --root=*) ROOT_DIR=(${opt#*=});; + --*) MAINOPTS+=($opt);; + -*) for (( i=1; i<${#opt}; i++ )); do MAINOPTS+=(-${opt:$i:1}); done;; + *) MAINOPTS+=($opt);; esac done