Config Files

Note

New in mappyfile 1.1.0

MapServer 8.0 introduced a new CONFIG file. mappyfile is able to parse and write these config files similar to Mapfiles. Validation against a CONFIG schema is also supported. The CONFIG file schema can be downloaded directly from this link - config.json.

Python Usage

>>> import mappyfile
>>> import json
>>> fn = r"C:\MapServer\apps\mapserver.conf"
>>> d = mappyfile.open(fn)
>>> print(json.dumps(d["env"], indent=4))
{
    "ms_map_pattern": ".",
    "proj_data": "C:/MapServer/bin/proj9/share",
    "proj_debug": "3",
    "gdal_driver_path": "C:/MapServer/bin/gdal/plugins",
    "ogcapi_html_template_directory": "C:/MapServer/apps/ogcapi/templates/html-bootstrap4/"
}
>>> d["env"]["curl_ca_bundle"] = "C:/MapServer/bin/curl-ca-bundle.crt"
>>> print(json.dumps(d["env"], indent=4))
{
    "ms_map_pattern": ".",
    "proj_data": "C:/MapServer/bin/proj9/share",
    "proj_debug": "3",
    "gdal_driver_path": "C:/MapServer/bin/gdal/plugins",
    "ogcapi_html_template_directory": "C:/MapServer/apps/ogcapi/templates/html-bootstrap4/",
    "curl_ca_bundle": "C:/MapServer/bin/curl-ca-bundle.crt"
}
>>> print(mappyfile.dumps(d, indent=4))
CONFIG
    ENV
        ms_map_pattern "."
        proj_data "C:/MapServer/bin/proj9/share"
        proj_debug "3"
        gdal_driver_path "C:/MapServer/bin/gdal/plugins"
        ogcapi_html_template_directory "C:/MapServer/apps/ogcapi/templates/html-bootstrap4/"
        curl_ca_bundle "C:/MapServer/bin/curl-ca-bundle.crt"
    END
    MAPS
        itasca "D:\GitHub\mapserver-demo\itasca.map"
        hello_world "D:\mapserver\msautotest\config\hello_world.map"
    END
    PLUGINS
        "mssql" "C:\MapServer\bin\ms\plugins\mssql2008\msplugin_mssql2008.dll"
    END
END
>>> mappyfile.save(d, r"C:\MapServer\apps\mapserver.new.conf")
'C:\\MapServer\\apps\\mapserver.new.conf'

Command-line Usage

To validate a config file:

mappyfile validate C:\MapServer\apps\mapserver.conf

To format a config file:

mappyfile format C:\MapServer\apps\mapserver.conf C:\MapServer\apps\mapserver.formatted.conf --indent 2