Sophie

Sophie

distrib > Fedora > 13 > i386 > media > os > by-pkgid > e2dc56e661c83a56ea26b2c750afd12c > files > 29

rss-glx-0.9.1.p-2.fc13.i686.rpm

#!/bin/bash

MV_FILES="matrixview.1 matrixview.c matrixview.desktop matrixview_textures matrixview_textures.h matrixview.xml"
mv_files=
for i in $MV_FILES; do
    mv_files="$mv_files src/$i"
done

usage() {
    cat << EOF
Usage: $0 original_tarball diff-file new_tarball
E.g.: $0 rss-glx_0.8.1.tar.bz2 rss-glx-0.8.1-0.8.1.p.diff rss-glx_0.8.1.p.tar.bz2
Required tools for operation: mktemp patch aclocal automake autoconf tar
EOF
}

tar_type() {
    local filename="$1"
    case "$filename" in
    *.tar.gz|*.tgz)
        echo -z
        ;;
    *.tar.bz2|*.tbz2)
        echo -j
        ;;
    *.tar)
        ;;
    *)
        usage
        exit 1
    esac
}

tar_dir() {
    local filename="$1"
    local dirname="${filename##*/}"
    dirname="${dirname%.tar.bz2}"
    dirname="${dirname%.tbz2}"
    dirname="${dirname%.tar.gz}"
    dirname="${dirname%.tgz}"
    dirname="${dirname%.tar}"
    #dirname="${dirname/rss-glx_/rss-glx-}"
    echo "$dirname"
}

if [ "$#" -ne 3 ]; then
    usage
    exit 1
fi

orig_tb="$1"
if [ "$orig_tb" = "${orig_tb#/}" ]; then
    orig_tb="$PWD/$orig_tb"
fi
orig_tb_type="$(tar_type "$orig_tb")"
orig_tb_dir="$(tar_dir "$orig_tb")"
diff_file="$2"
if [ "$diff_file" = "${diff_file#/}" ]; then
    diff_file="$PWD/$diff_file"
fi
new_tb="$3"
if [ "$new_tb" = "${new_tb#/}" ]; then
    new_tb="$PWD/$new_tb"
fi
new_tb_type="$(tar_type "$new_tb")"
new_tb_dir="$(tar_dir "$new_tb")"

echo "Creating temporary directory."

if ! TEMP_DIR="$(mktemp -d)"; then
    echo "mktemp failed to create a temporary directory. Aborting."
    exit 1
fi

echo "Changing to temporary directory ${TEMP_DIR}."
pushd "$TEMP_DIR"

echo "Unpacking original tarball."
set -x
tar -x "$orig_tb_type" -f "$orig_tb" || exit 3
set +x

pushd "$orig_tb_dir"

echo "Removing files:"
set -x
for i in $mv_files; do
    rm -r "$i" || exit 4
done

echo "Applying diff file."
cat "$diff_file" | patch -p1 || exit 5
set +x


echo 'Regenerating auto* files:'
set -x
rm -f config.guess config.sub ltmain.sh || :
autoreconf -i || exit 6
rm -rf autom4te.cache || :
set +x

popd

echo "Renaming directory:"
set -x
mv -f "$orig_tb_dir" "$new_tb_dir" || exit 9
set +x

echo "Creating new tarball:"
set -x
tar -c "$new_tb_type" -f "$new_tb" "$new_tb_dir" || exit 10
set +x
echo "Created ${new_tb}."

popd
echo "Removing temporary directory ${TEMP_DIR}."
rm -rf "$TEMP_DIR" || exit 11

echo "Done."