Does sysctl(8) really need to learn to parse files? Can't rc.d/sysctl be modified to do the fixup?
This regex seems to work: val=`echo $val | sed -e "s@ *\"\(.*\)\" *@\1@" -e "s@ *'\(.*\)' *@\1@"` -Alfred On 12/1/12 8:50 AM, Hiroki Sato wrote:
Hi, I would like comments about the attached patch for sysctl(8) to add a new option "-f filename". It supports reading of a file with key=value lines. As you probably know, we already have /etc/sysctl.conf and it is processed by rc.d/sysctl shell script in a line-by-line basis. The problem I want to fix is a confusing syntax of /etc/sysctl.conf. The file supports a typical configuration file syntax but problematic in some cases. For example: kern.coredump=1 works well in /etc/sysctl.conf, but kern.coredump="1" does not work. Similarly, it is difficult to use whitespaces and "#" in the value: OK: kern.domainname=domain\ name\ with\ spaces NG: kern.domainname="domain name with spaces" NG: kern.domainname=domain\ name\ including\ #\ character NG: kern.domainname=domain\ name\ including\ \#\ character The attached patch solves them, and in addition it displays an error message with a line number if there is something wrong in the file like this: % cat -n /etc/sysctl.conf ... 10 kern.coredump=1 11 kern.coredump2=1 ... % /etc/rc.d/sysctl start sysctl: kern.coredump at line 10: Operation not permitted sysctl: unknown oid 'kern.coredump2' at line 11 # /etc/rc.d/sysctl start kern.coredump: 1 -> 1 sysctl: unknown oid 'kern.coredump2' at line 11 Any comments are welcome. -- Hiroki
_______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"