git: 98358de5754c - stable/12 - Fix spurious error from sysrc

From: Mateusz Piotrowski <0mp_at_FreeBSD.org>
Date: Thu, 06 Jul 2023 15:39:53 UTC
The branch stable/12 has been updated by 0mp:

URL: https://cgit.FreeBSD.org/src/commit/?id=98358de5754cc85b50309323ff72a66193502107

commit 98358de5754cc85b50309323ff72a66193502107
Author:     Devin Teske <dteske@FreeBSD.org>
AuthorDate: 2019-12-02 05:24:16 +0000
Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
CommitDate: 2023-07-06 15:39:23 +0000

    Fix spurious error from sysrc
    
    When using sysrc to modify a file, the file should be created silently.
    However, with the introduction of SVN r335280, an error of "No such file
    or directory" would appear despite everything else working as-expected.
    
    The nature of this spurious error is that SVN r335280 did not check if
    the file exists first, before trying to fixup the line-endings in the
    file just prior to modification.
    
    PR:             bin/240875
    Reported by:    Jose Luis Duran
    MFC after:      3 days
    
    (cherry picked from commit e19a2226fe3bbeeb6e922987475300868374d09a)
---
 usr.sbin/bsdconfig/share/sysrc.subr | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/usr.sbin/bsdconfig/share/sysrc.subr b/usr.sbin/bsdconfig/share/sysrc.subr
index 010d240f680a..11298f00f47a 100644
--- a/usr.sbin/bsdconfig/share/sysrc.subr
+++ b/usr.sbin/bsdconfig/share/sysrc.subr
@@ -560,7 +560,7 @@ f_sysrc_set()
 	#
 	if [ "$not_found" ]; then
 		# Add a newline if missing before appending to the file
-		awk 'BEGIN { wc = 0 } NR == 1 {
+		[ ! -e "$file" ] || awk 'BEGIN { wc = 0 } NR == 1 {
 			(cmd = "wc -l " FILENAME) | getline
 			close(cmd)
 			wc = $1