We need more projects like this and if a system is running SystemD, this needs to be enabled and integrated with any LSP-supported editors.
[0] https://docs.podman.io/en/latest/markdown/podman-systemd.uni...
I was trying to figure out why Systemd decided on their ini-like syntax instead of something like xml or json or whatever. I thought maybe it was some standard that existed at the time, but it does seem to be a custom format unique to systemd...
OTOH, JSON is not a configuration file format. XML might be, but when I see what some people do with XML (ant, maven builds are abysmal, although msbuild xml files are managable), then I want to click unsubscribe.
I'm happy they've chosen INI.
Things like rc files for shells and .mailrc for BSD Mail were simply scripts written in the program's own command language. The .newsrc used by ReadNews was an example of a common colon-separated key+value format, also seen in Xresources and others. The sendmail.cf used by BSD Sendmail was its own very special thing, indistinguishable from modem line noise.
BSD also widely used the "capabilities" file format, which still exists in many parts of FreeBSD, NetBSD, and OpenBSD to this day for various things such /etc/login.conf and /etc/gettytab and termcap. (In many cases nowadays, cap files are compiled into Berkeley DB or other constant database files by tools such as cap_mkdb and tic.)
Many configuration files in the Unix world were simply flat file tables, with colons, whitespace, or TAB as the field separator. phones(5) is one such TAB-separated table that is in FreeBSD to this day.
- xml is too verbose
- yaml is too complex + suffers some notable ambiguity issues
- json isn't very human friendly (no comments)
- a lot of other linux software uses ini-style configs
Thanks for this!
Which was a part of the argumentation that systemd is very “windows” in its design (hidden errors, monolithic design).
Definitely an established standard (though not as much on UNIX-likes) before TOML was popularised though.
Launchd uses XML to describe unit files (actually, it uses plists which can be binary, but most of the files are stored in xml).