#!/bin/sh . patchfns >/dev/null || . /usr/lib/patch-scripts/patchfns >/dev/null || { \ echo "Impossible to find my library 'patchfns'." echo "Check your install, or go to the right directory" exit 1 } usage() { echo "usage: import_patch [ -p prefix-pattern ] patchfile [...]" 1>&2 exit 1 } XPATTERN="" if [ "$1" = "-p" ] then XPATTERN="$2" shift; shift; fi if [ "$1" = "" ] then usage fi if [ ! -e applied-patches ] then touch applied-patches fi mkdir -p patches || exit 1 mkdir -p txt || exit 1 mkdir -p pc || exit 1 if [ ! -e ./series ] then touch ./series if [ "$?" != "0" ] then echo "Cannot create ./series" 1>&2 exit 1 fi fi if [ ! -w ./series ] then echo "./series is not writable." 1>&2 exit 1 fi PATTERN='s/^'"$XPATTERN"'//' for x in $* do if [ ! -r "$x" ] then echo "$x does not exist, skipping." 1>&2 continue fi patchname=`basename $x .bz2` patchname=`basename $patchname .gz` patchname=`basename $patchname .Z` patchname=`basename $patchname .patch` if is_applied $patchname then echo $patchname is currently applied exit 1 fi if [ "$XPATTERN" != "" ] then patchname=`echo $patchname | sed -e "$PATTERN"` fi pname=$P/patches/"$patchname".patch if [ -r "$pname" ] then echo "$pname exists already, skipping." 1>&2 continue fi case "$x" in *.bz2) bunzip2 < "$x" > "$pname" ;; *.gz) gunzip < "$x" > "$pname" ;; *.Z) zcat < "$z" > "$pname" ;; *) cat "$x" > "$pname" || continue ;; esac echo "$patchname".patch >> series pcpatch "$pname" extract_description < "$pname" >$P/txt/"$patchname".txt grep '^[(]undescribed patch[)]$' < $P/txt/"$patchname".txt > /dev/null if [ "$?" = "0" ] then echo "Warning: $patchname has no description." 1>&2 fi done