[pacman-dev] [PATCH v4] pacdiff: Search and give warnings for older pacsave.[0-9] files

Dave Reisner d at falconindy.com
Mon Jul 15 12:56:34 EDT 2013


On Mon, Jul 15, 2013 at 09:35:09AM -0500, Dan McGee wrote:
> On Thu, Jul 11, 2013 at 5:08 PM, Jonathan Frazier <eyeswide at gmail.com> wrote:
> > Signed-off-by: Jonathan Frazier <eyeswide at gmail.com>
> > ---
> >  contrib/pacdiff.sh.in | 12 ++++++++++--
> >  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> I'm hoping I'm reading this wrong or haven't had enough coffee yet
> since it got Ack-ed by Allan, but doesn't this totally fail when
> pacsave files roll over from foo.conf.9 to foo.conf.10? This is 100%
> supported by the match and move behavior in libalpm's code in
> remove.c.
> 

Nope, you're correct. I was thinking about suggesting that we simply
switch to using find -regex here if we want to be truly accurate about
it. Otherwise, -name '*.pacsave.[0-9]*' is sufficient to cover it.

> > diff --git a/contrib/pacdiff.sh.in b/contrib/pacdiff.sh.in
> > index 47779d6..a2c9cad 100644
> > --- a/contrib/pacdiff.sh.in
> > +++ b/contrib/pacdiff.sh.in
> > @@ -47,9 +47,9 @@ version() {
> >
> >  cmd() {
> >         if [ $locate -eq 1 ]; then
> > -               locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave
> > +               locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave '*.pacsave.[0-9]'
> >         else
> > -               find $diffsearchpath \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave \) -print0
> > +               find $diffsearchpath \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave -o -name '*.pacsave.[0-9]' \) -print0
> >         fi
> >  }
> >
> > @@ -71,6 +71,12 @@ while IFS= read -u 3 -r -d '' pacfile; do
> >         file="${pacfile%.pac*}"
> >         file_type="pac${pacfile##*.pac}"
> >
> > +       # add matches for pacsave.N     to oldsaves array, do not prompt
> > +  if [[ $file_type = pacsave.+([0-9]) ]]; then
> > +               oldsaves+=("$pacfile")
> > +               continue
> > +       fi
> > +
> >         msg "%s file found for %s" "$file_type" "$file"
> >         if [ ! -f "$file" ]; then
> >                 warning "$file does not exist"
> > @@ -97,6 +103,8 @@ while IFS= read -u 3 -r -d '' pacfile; do
> >         fi
> >  done 3< <(cmd)
> >
> > +(( ${#oldsaves[@]} > 0 )) && warning "Ignoring %s" "${oldsaves[@]}"
> > +
> >  exit 0
> >
> >  # vim: set ts=2 sw=2 noet:
> > --
> > 1.8.3.2
> >
> >
> 


More information about the pacman-dev mailing list