Fix an unused-variable pylint warning

Signed-off-by: Kyle Moffett <kyle@moffetthome.net>
New module for executing helper scripts in a clean environment

To ensure that helper scripts are idempotent and reproducible, their
execution environment needs to be carefully controlled.  That means the
working directory, various environment variables, etc.

This new "ifupdown.script" module contains several classes for creating
this clean environment for scripts.

It currently isn't used anywhere yet, but I've verified that it has the
expected behavior with ad-hoc tests (real unit-tests are still TODO), so
it should get checked in.

Signed-off-by: Kyle Moffett <kyle@moffetthome.net>
Force all python 'import' statements to be absolute

We actually want this now, to prevent the module "ifupdown_ng.logging"
from hiding the built-in "logging" module.

In the future (Python 3+) this will be the default, so it's probably
better to be prepared ahead of time anyways.

Signed-off-by: Kyle Moffett <kyle@moffetthome.net>
Convert to the standard Python logging framework

Rather than rolling our own, let's just use what Python provides us.
The config-file parsing still needs to be updated, but this is a good
first step.

Signed-off-by: Kyle Moffett <kyle@moffetthome.net>
ifupdown_ng.config: Refactor parser state-tracking to a new module

This will allow other files to benefit from the same parser state model.

Signed-off-by: Kyle Moffett <kyle@moffetthome.net>
ifupdown_ng.config: Shard into a new sub-package

The first step is just splitting the tokenizer into its own package, but
eventually we will split all the other pieces of the config into their
own files too.

This is necessary to make it possible for modules to define new config
keywords, blocks, subblocks, etc.

Signed-off-by: Kyle Moffett <kyle@moffetthome.net>