Open chriscroome opened 6 months ago
This looks like it would need to be a separate parser, possibly reusing the INI parser with some pre-processing to remove inline comments. The INI parser documentation states that all comments must be on their own line.
Thanks, I'd missed the fact that the existing parser doesn't allow inline comments, I'll use sed
for now:
cat /etc/postgresql/15/main/postgresql.conf | sed 's/[#].*$//' | jc --ini -p
{
"data_directory": "/var/lib/postgresql/15/main",
"hba_file": "/etc/postgresql/15/main/pg_hba.conf",
"ident_file": "/etc/postgresql/15/main/pg_ident.conf",
"external_pid_file": "/var/run/postgresql/15-main.pid",
"port": "5432",
"max_connections": "100",
"unix_socket_directories": "/var/run/postgresql",
"ssl": "on",
"ssl_cert_file": "/etc/ssl/certs/ssl-cert-snakeoil.pem",
"ssl_key_file": "/etc/ssl/private/ssl-cert-snakeoil.key",
"shared_buffers": "128MB",
"dynamic_shared_memory_type": "posix",
"max_wal_size": "1GB",
"min_wal_size": "80MB",
"log_line_prefix": "%m [%p] %q%u@%d ",
"log_timezone": "Etc/UTC",
"cluster_name": "15/main",
"datestyle": "iso, dmy",
"timezone": "Etc/UTC",
"lc_messages": "en_GB.UTF-8",
"lc_monetary": "en_GB.UTF-8",
"lc_numeric": "en_GB.UTF-8",
"lc_time": "en_GB.UTF-8",
"default_text_search_config": "pg_catalog.english",
"include_dir": "conf.d"
}
An extract from the main PostgreSQL configuration file from Debian Bookworm,
/etc/postgresql/15/main/postgresql.conf
:The JC ini filter returns the following from the above:
I wonder if this needs a special case, if values are not quoted assume that any white space (tabs in this case) and anything else after a
#
can be discarded? Or if theini
parser should be updated for this format?