certctl(8): Pacify formal POSIX sh syntax.

According to POSIX 2018, the syntax between `then' and `elif' and
`fi' must be a _non-empty_ list of commands:

compound_list    : linebreak term
                 | linebreak term separator
                 ;
...
if_clause        : If compound_list Then compound_list else_part Fi
                 | If compound_list Then compound_list           Fi
                 ;
else_part        : Elif compound_list Then compound_list
                 | Elif compound_list Then compound_list else_part
                 | Else compound_list
                 ;

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02

NetBSD's sh(1) currently doesn't enforce this and allows an empty
sequence of commands, but let's not rely on that nonstandard quirk.

Noted in PR 57997.
pull/34/head
riastradh 2024-03-04 20:37:31 +00:00
parent 900c18e5f0
commit fa5a04837c
1 changed files with 2 additions and 1 deletions

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $NetBSD: certctl.sh,v 1.6 2024/03/03 15:53:55 riastradh Exp $
# $NetBSD: certctl.sh,v 1.7 2024/03/04 20:37:31 riastradh Exp $
#
# Copyright (c) 2023 The NetBSD Foundation, Inc.
# All rights reserved.
@ -440,6 +440,7 @@ rehash()
return 1
elif [ ! -e "$certsdir" ]; then
# Directory doesn't exist at all. Nothing to do!
:
elif [ ! -d "$certsdir" ]; then
error "certificates directory is not a directory"
return 1