Skip to main content

A python module to parse apache config files.

Project description

# parse_apache_configs A simple python library that will parse apache configs and convert them to a python data structure.

parse_apache_configs

A simple python library that will parse apache configs and convert them to a python data structure. This will then allow the configs to be manipulated programatically.

Main Functions

To use:

from parse_apache_configs import parse_config

Parse the apache config via file path, and return a python object representation:

apache_parse_obj = parse_config.ParseApacheConfig(apache_config_path="/some/path/to/file")
apache_config = apache_parse_obj.parse_config()

or to parse the apache config as a string:

apache_parse_obj = parse_config.ParseApacheConfig(apache_file_as_string=apache_string_obj)
apache_config = apache_parse_obj.parse_config()

Now you can use the apache_config object to manipulate the apache config.

To add or override an existing directive and return the result:

apache_config = apache_parse_obj.add_directive(apache_config, "SomeDirectiveName", "SomeDirectiveArguments", "<VirtualHost *:80>")

The code above will add the line “SomeDirectiveName SomeDirectiveArguments” under <VirtualHost *:80>. If the directive is already there, then it’s arguments will be overridden. Keep in mind that directives in nested tags can also be added/overridden, but their full “path” must be fed into add_directive. For example, given the following apache file:

<VirtualHost *:80>
  ServerName example.org
  ServerAlias *.example.org
  ErrorLog /var/log/httpd/example.err
  DocumentRoot /var/www/example.org
  <Directory "/var/www/example.org">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

To override the “Order” directive under <Directory “/var/www/example.org”>, the invocation to add_directive would look like this:

apache_config = apache_parse_obj.add_directive(apache_config, "Order", "deny,allow", "<VirtualHost *:80>", "<Directory "/var/www/example.org">")

To convert the apache_config object into a printable string:

apache_config_string = apache_parse_obj.get_apache_config(apache_config)
print apache_config_string

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parse_apache_configs-0.0.2.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file parse_apache_configs-0.0.2.tar.gz.

File metadata

File hashes

Hashes for parse_apache_configs-0.0.2.tar.gz
Algorithm Hash digest
SHA256 000a98f518636bc9f8c06ba6ea2f7fb8fb0298c780b6a8e9a242ec393ecd29ac
MD5 87cb2c95657680a67f7462b18c667b27
BLAKE2b-256 3a59bfb842d06d90d3c1b55e097726061eb51da34dc4b23b6591c202094318cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page