Philip Hands wrote:
  >> Kevin Dalley wrote, referring to Bug#18118:
  >>   >It would be nice if postgresql upgrade would remove the lines from
  >>   >/etc/crontab which were added by previous version of postgresql.
  >> 
  >> For a while, it did.  Nevertheless, it is a violation of policy to 
  >> modify /etc/crontab, which is why I have taken it out.
  >> 
  >> Should I reinstate the removal?  It would add these lines to postinst:
  >>...
  >sed seems like a simpler way of doing this than awk:

Ah well, in Unix there's always more than one way to do it; I like awk!

I can also think of a way to do it with a mixture of grep, cut, head and tail!
How about a Perl contribution, anyone?  We could put the whole lot into a
little note on inventive ways to use basic commands.

  >
  >  sed -e '/^#-- postgresql begin /,/^#--  postgresql end /d'  \
  >    /etc/crontab > $TMP

I hadn't thought of this way of using sed to deal with a block; I
presume that the patterns make the command equivalent to (say) 10,12d

  >BTW Is it worth worrying about broken files ?  Either method will delete
  >to the end of the file if the end comment is missing -- does this matter ?
 
I'd prefer not to risk breaking anything; so, with awk:

   if grep -qs '^#-- postgresql begin *$' /etc/crontab
   then
        TMP=`mktemp /tmp/pg.XXXXXX` || exit 1
        awk 'BEGIN {found=0}
   /^#-- postgresql begin *$/ {found = 1}
   /^#-- postgresql end *$/ {found = -1}
        {if (!found) print}
        {if (found == -1) found=0}
        END {if (found) exit 1}' /etc/crontab >$TMP &&
                if [ -f $TMP ]
                then
                        mv $TMP /etc/crontab
                fi
   fi

This will not delete anything unless the whole block is found.

-- 
Oliver Elphick                                [EMAIL PROTECTED]
Isle of Wight                              http://www.lfix.co.uk/oliver

PGP key from public servers; key ID 32B8FAA1



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to