From 46f182fcac1d12c62d4e4061ee2ff5bdd4cba2d7 Mon Sep 17 00:00:00 2001 From: emmett1 Date: Thu, 25 Apr 2019 17:37:52 +0800 Subject: [PATCH] add logging --- INSTALL.sh | 2 +- pkgbuild | 17 +++++++++++++++-- scratch | 14 +++++--------- scratchpkg.conf | 1 + 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/INSTALL.sh b/INSTALL.sh index 91ebe6f..c122a23 100755 --- a/INSTALL.sh +++ b/INSTALL.sh @@ -13,5 +13,5 @@ mkdir -pv ${DESTDIR}{${BINDIR},${CONFDIR},${HOOK_DIR},${PORT_DIR},${REVDEPD}} install -m755 revdep pkgadd pkgdel pkgbuild pkgdeplist pkglibdepends scratch pkgbase ${DESTDIR}${BINDIR} install -m644 scratchpkg.conf scratchpkg.repo ${DESTDIR}${CONFDIR} install -m755 extra/* ${DESTDIR}${BINDIR} -install -dm777 ${DESTDIR}${CACHE_DIR}/{packages,sources} +install -dm777 ${DESTDIR}${CACHE_DIR}/{packages,sources,log} install -m644 revdep.conf ${DESTDIR}${REVDEPCONF} diff --git a/pkgbuild b/pkgbuild index a61aeec..dd9f60c 100755 --- a/pkgbuild +++ b/pkgbuild @@ -236,8 +236,14 @@ run_build() { runprebuildscript - (set -e -x; build) - #(exec &> >(tee -i $LOG_DIR/$name.log); echo "$name-$version"; echo $(date); set -e -x; build) + if [ "$LOGGING" = yes ]; then + ( + set -e -x; build 2>&1 | tee $LOG_DIR/$name-$version-$release.log + exit $PIPESTATUS + ) + else + (set -e -x; build) + fi if [ $? != 0 ]; then msgerr "Build '$name-$version-$release' failed." @@ -519,6 +525,7 @@ parse_opts() { -x | --extract) EXTRACT_ONLY=yes ;; -w | --keep-work) KEEP_WORK=yes ;; -s | --silent) INST_OPT=$1 ;; + -l | --log) LOGGING=yes ;; -h | --help) SHOWHELP=yes ;; --no-preinstall) NO_PREINSTALL=yes; OPTS+=($1) ;; --no-postinstall) OPTS+=($1) ;; @@ -575,6 +582,11 @@ main() { fi checkdir "$SOURCE_DIR" "$PACKAGE_DIR" "$WORK_DIR" + if [ -f $LOG_DIR/$name-$version-$release.log ] && [ ! -w $LOG_DIR/$name-$version-$release.log ]; then + msgerr "You dont have write permission for '$LOG_DIR/$name-$version-$release.log'!" + abort 1 + fi + check_buildscript set_options @@ -651,6 +663,7 @@ PKGBUILD_BSCRIPT="spkgbuild" SOURCE_DIR="/var/cache/scratchpkg/sources" PACKAGE_DIR="/var/cache/scratchpkg/packages" +LOG_DIR="/var/cache/scratchpkg/log" WORK_DIR="/tmp" DOWNLOAD_PROG="wget" COMPRESSION_MODE="xz" diff --git a/scratch b/scratch index 273eb12..fd0ef48 100755 --- a/scratch +++ b/scratch @@ -338,11 +338,7 @@ showdependent() { checkowner() { local arg arg=$(echo $1 | sed 's:^/::') - for pkg in $(allinstalled); do - grep $arg $INDEX_DIR/$pkg/.files | while read line; do - echo -e "${CYAN}$pkg${CRESET} => ${PURPLE}$line${CRESET}" - done - done + grep -R $arg $INDEX_DIR/*/.files | sed "s:$INDEX_DIR/::" | sed "s:/.files::" | tr : " " | column -t } showtree() { @@ -529,9 +525,9 @@ buildpkg() { return 1 fi while [ "$1" ]; do - if [[ "$1" =~ ^-(f|v|w|m|o|x)$ ]]; then + if [[ "$1" =~ ^-(f|v|w|m|o|x|l)$ ]]; then OPTS+=($1) - elif [[ "$1" =~ ^--(no-prebuild|force-rebuild|skip-mdsum|download|extract|keep-work)$ ]]; then + elif [[ "$1" =~ ^--(no-prebuild|force-rebuild|skip-mdsum|download|extract|keep-work|log)$ ]]; then OPTS+=($1) elif [[ "$1" =~ ^--(pkgdir|srcdir)= ]]; then OPTS+=($1) @@ -565,7 +561,7 @@ installpkg() { return 1 fi while [ "$1" ]; do - if [[ "$1" =~ ^-(c|v|-verbose|-ignore-conflict)$ ]]; then + if [[ "$1" =~ ^-(c|v|l|-verbose|-ignore-conflict|-log)$ ]]; then OPTS+=($1) elif [[ "$1" =~ ^-(r|-reinstall)$ ]]; then OPTS+=($1) @@ -775,7 +771,7 @@ sysup() { shift done - echo "Checking for outdate packages..." + echo "Checking for outdated packages..." PKGOUTDATE=$(outdatepkg) if [ ! "$PKGOUTDATE" ]; then diff --git a/scratchpkg.conf b/scratchpkg.conf index a8ab83c..3aff4e0 100644 --- a/scratchpkg.conf +++ b/scratchpkg.conf @@ -8,6 +8,7 @@ MAKEFLAGS="-j$(nproc)" # SOURCE_DIR="/var/cache/scratchpkg/sources" # PACKAGE_DIR="/var/cache/scratchpkg/packages" +# LOG_DIR="/var/cache/scratchpkg/log" # WORK_DIR="/tmp" # HOOK_DIR="/etc/hooks" # DOWNLOAD_PROG="wget"