cookutils annotate lib/libcook.sh @ rev 475

libcook.sh: Add strip_blocked function.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Jun 09 14:10:51 2012 +0000 (2012-06-09)
parents b94be6aaa804
children 4b1f207c4058
rev   line source
pankso@422 1 #!/bin/sh
pankso@422 2 #
pankso@422 3 # Cook library - Shared configs and functions between cook, the cooker and
pankso@422 4 # cookiso. Read the README before adding or modifing any code in libcook.sh!
pankso@422 5 #
pankso@422 6 # Copyright (C) SliTaz GNU/Linux - GNU gpl v3
pankso@422 7 # Author: Christophe Lincoln <pankso@slitaz.org>
pankso@422 8 #
pankso@422 9 . /lib/libtaz.sh
pankso@422 10 . /usr/lib/slitaz/libpkg.sh
pankso@422 11 . /etc/slitaz/slitaz.conf
pankso@422 12
pankso@422 13 # System wide config can be overwriten by a cook.conf in current path.
pankso@422 14 [ -f "/etc/slitaz/cook.conf" ] && . /etc/slitaz/cook.conf
pankso@422 15 [ -f "cook.conf" ] && . ./cook.conf
pankso@431 16
pankso@431 17 # Shared DB between Cook, the Cooker and Cookiso.
pankso@431 18 # In cookiso: repo= --> flavors
slaxemulator@457 19 if [ "$(basename $0)" = "cookiso" ]; then
slaxemulator@457 20 cache="$CACHE/cookiso"
slaxemulator@457 21 #cookiso variables
slaxemulator@457 22 repo="$SLITAZ/flavors"
slaxemulator@457 23 iso="$SLITAZ/iso"
slaxemulator@457 24 rollog="$cache/rolling.log"
slaxemulator@457 25 synclog="$cache/rsync.log"
slaxemulator@457 26 else
slaxemulator@457 27 cache="$CACHE"
slaxemulator@457 28 fi
slaxemulator@457 29
pankso@431 30 flavors="$SLITAZ/flavors"
slaxemulator@457 31 activity="$cache/activity"
slaxemulator@457 32 commits="$cache/commits"
slaxemulator@457 33 cooklist="$cache/cooklist"
slaxemulator@457 34 cookorder="$cache/cookorder"
slaxemulator@457 35 command="$cache/command"
slaxemulator@457 36 blocked="$cache/blocked"
slaxemulator@457 37 broken="$cache/broken"
slaxemulator@461 38 unbuild="$cache/unbuild"
slaxemulator@457 39 cooknotes="$cache/cooknotes"
pankso@431 40 crontabs="/var/spool/cron/crontabs/root"
pankso@431 41
slaxemulator@460 42 wan_db="$INCOMING/wanted.txt"
slaxemulator@460 43 dep_db="$INCOMING/depends.txt"
slaxemulator@460 44 lib_db="$INCOMING/libraries.txt"
slaxemulator@460 45 # full cookorder
slaxemulator@460 46 fullco="$PKGS/fullco.txt"
slaxemulator@460 47
pankso@431 48 # Lograte activity.
pankso@431 49 [ -s "$activity" ] && tail -n 60 $activity > /tmp/tail-$$ && \
pankso@431 50 mv -f /tmp/tail-$$ $activity
pankso@431 51
pankso@431 52 # Log activities, we want first letter capitalized.
pankso@431 53 # TODO: use /lib/libtaz.sh log() but need to change all:
pankso@431 54 # echo "Message" | log --> log "Message"
pankso@431 55 log() {
pankso@431 56 grep ^[A-Z] | \
pankso@431 57 sed s"#^[A-Z]\([^']*\)#$(date '+%Y-%m-%d %H:%M') : \0#" >> $activity
pankso@431 58 }
pankso@431 59
pankso@431 60 # Log broken packages.
pankso@431 61 broken() {
pankso@431 62 if ! grep -q "^$pkg$" $broken; then
pankso@431 63 echo "$pkg" >> $broken
pankso@431 64 fi
pankso@431 65 }
slaxemulator@475 66
slaxemulator@475 67 # Remove blocked (faster this way than grepping before).
slaxemulator@475 68 strip_blocked() {
slaxemulator@475 69 local pkg
slaxemulator@475 70 for pkg in $(cat $blocked)
slaxemulator@475 71 do
slaxemulator@475 72 sed -i /^${pkg}$/d $cooklist
slaxemulator@475 73 PACKAGE="$pkg"
slaxemulator@475 74 for i in $(look_for_rwanted); do
slaxemulator@475 75 sed -i /^${i}$/d $cooklist
slaxemulator@475 76 done
slaxemulator@475 77 done && sed -i /^$/d $cooklist
slaxemulator@475 78 }