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 hashes)

Uploaded Source

Supported by

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