47 lines
794 B
Bash
47 lines
794 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
REMOVE_DIRS=(
|
||
|
admin
|
||
|
appl
|
||
|
etc
|
||
|
kadmin
|
||
|
kcm
|
||
|
kpasswd
|
||
|
kuser
|
||
|
packages
|
||
|
po
|
||
|
tests
|
||
|
tools
|
||
|
windows
|
||
|
)
|
||
|
|
||
|
set -o errexit
|
||
|
|
||
|
CMDNAME=${0##*/}
|
||
|
SOURCEDIR=${0%$CMDNAME}
|
||
|
|
||
|
BASENAME=${1%.tar.gz}
|
||
|
|
||
|
trap "rm -rf \"$BASENAME-patched.tar\" \"$BASENAME-patched.tar.bz2\"" ERR
|
||
|
|
||
|
for (( N=0; N<${#REMOVE_DIRS[@]}; N++ )) ; do
|
||
|
REMOVE_DIRS[N]="*/${REMOVE_DIRS[N]}"
|
||
|
done
|
||
|
|
||
|
cd "$SOURCEDIR" > /dev/null
|
||
|
|
||
|
if [ ! -f "$BASENAME.tar.gz" ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
if [ -f "$BASENAME-patched.tar.bz2" ] && [ "$BASENAME.tar.gz" -ot "$BASENAME-patched.tar.bz2" ]; then
|
||
|
if [ $CMDNAME -ot "$BASENAME-patched.tar.bz2" ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
gzip -d "$BASENAME.tar.gz"
|
||
|
mv -f "$BASENAME.tar" "$BASENAME-patched.tar"
|
||
|
tar --wildcards --delete -f "$BASENAME-patched.tar" "${REMOVE_DIRS[@]}"
|
||
|
bzip2 "$BASENAME-patched.tar"
|