#! /bin/sh # $Id$ # Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log. rc=0 force=false if [ "$1" = "-f" ];then force=true shift fi clean=false if [ "$1" = "-c" ];then clean=true shift fi args="$*" if [ -z "$args" ];then args="`find -name "*.log"`" fi for log in $args;do base="${log%.log}" if [ "$base" = "$log" ];then base="${log%/log}" if [ "$base" != "$log" ];then base="$base/out" fi fi if [ "$base" = "$log" -o "$log" != "${log%/gdb.log}" -o "$log" = "gdb.log" ];then echo >&2 "file has no .log suffix or is gdb.log: $log" rc=1 continue fi if ($force || $clean) && test -d "$base";then rm -rf "$base" fi if $clean;then continue fi if ! mkdir "$base";then echo >&2 "Error <$log>: mkdir" rc=1 continue fi if ! (cd "$base";uudecode) <"$log";then echo >&2 "Error <$log>: uudecode" rm -rf "$base" rc=1 continue fi if echo -n "$base"/*|grep ' ';then echo >&2 "Error <$log>: Too many files in: $base" rm -rf "$base" rc=1 continue fi if ! (echo -n "$base"/*|grep -q '[.]tar[.]bz2$');then echo >&2 "Error <$log>: Invalid file:" "$base"/* rm -rf "$base" rc=1 continue fi if ! (cd "$base";tar xjf *);then echo >&2 "Error <$log>: tar xjf" rm -rf "$base" rc=1 continue fi rm -f "$base"/*.tar.bz2 chmod -x "$base"/* perl -i -pe 's{\Q'"$HOME"'\E/.*?/build/[^/]*/}{}g' "$base"/* # if ! (echo "$base"/*|grep -q '^[^ ]*[.]log [^ ]*[.]sum$');then # echo >&2 "Error <$log>: Not two files .log+.sum:" "$base"/* # exit 1 # fi # mv -f "$base"/*.log "$base"/gdb.log # mv -f "$base"/*.sum "$base"/gdb.sum done if [ $rc -eq 0 ];then echo OK fi exit $rc