On 2020/12/06 16:39, Otto Moerbeek wrote:
> On Sun, Dec 06, 2020 at 03:31:19PM +0000, SW wrote:
> 
> > On 06/12/2020 14:32, Otto Moerbeek wrote:
> > > On Sun, Dec 06, 2020 at 02:19:05PM +0000, SW wrote:
> > >
> > >> Hi,
> > >> I've been looking to have syspatch give me a quick indication of whether
> > >> a reboot is likely to be required. As a quick and dirty check, I've just
> > >> been treating "Were patches applied?" as the indicator.
> > >>
> > >> The following diff will cause syspatch to exit when applying patches
> > >> with status code 0 only if patches were actually applied.
> > >>
> > >> My biggest concern is that it does cause a change in behaviour, so
> > >> perhaps this either needs making into an option or a different approach
> > >> entirely?
> > >>
> > >> --- syspatch    Sun Dec  6 14:11:12 2020
> > >> +++ syspatch    Sun Dec  6 14:10:23 2020
> > >> @@ -323,3 +323,9 @@ if ((OPTIND == 1)); then
> > >>         _PATCH_APPLIED=true
> > >>     done
> > >>  fi
> > >> +
> > >> +if [ "$_PATCH_APPLIED" = "true" ]; then
> > >> +   exit 0
> > >> +else
> > >> +   exit 1
> > >> +fi
> > >>
> > >> Thanks,
> > >> S
> > >>
> > > I don't this is correct since it maks syspatch exit 1 on "no patches 
> > > applied".
> > >
> > >   -Otto
> > > .
> > That's precisely the idea- from previous discussion with a couple of
> > people there didn't seem to be an easy (programmatic) way to figure out
> > whether syspatch had done anything or not.
> 
> exit code 1 normally used for error conditions. A system being
> up-to-date is not an error condition. 
> 
>       -Otto
> 
> 
> > 
> > Doing this would be a bit of a blunt way of handling things, and perhaps
> > it would be better gated behind a flag, but is there a better way to
> > make a scripted update work automatically (including rebooting as
> > necessary)?
> > 
> > Thanks,
> > S
> 

How about the same exit codes as acme-client? They seem fairly
reasonable - 0=updated, 1=failure, 2=no change.

I use this as a workaround, which I am not at all happy with.

date >> /var/log/updates
syspatch 2>&1 | tee -a /var/log/updates | grep -q Installing && log="$log 
syspatches" && _reboot=true
pkg_add -vu 2>&1 | tee -a /var/log/updates | grep -q Adding && log="$log 
packages" && _reboot=true
fw_update -v 2>&1 | tee -a /var/log/updates | grep -q ": ok" && log="$log 
firmware" && _reboot=true
if $_reboot; then
  logger "$log, rebooting"
  shutdown -r +1
fi

Reply via email to