Metadata-Version: 2.1
Name: netlint
Version: 0.1.2
Summary: Performs static analysis on network device configuration files.
Home-page: https://netlint.readthedocs.io
License: GPLv3
Keywords: lint,networking
Author: Leo Kirchner
Author-email: leo@kirchne.red
Requires-Python: >=3.6.1,<4.0.0
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Software Development :: Quality Assurance
Provides-Extra: docs
Requires-Dist: ciscoconfparse (>=1.5.30,<2.0.0)
Requires-Dist: click (>=7.1.2,<8.0.0)
Requires-Dist: m2r2 (>=0.2.7,<0.3.0); extra == "docs"
Requires-Dist: sphinx (>=3.5.3,<4.0.0); extra == "docs"
Requires-Dist: sphinx-click (>=2.7.1,<3.0.0)
Requires-Dist: sphinx-rtd-theme (>=0.5.2,<0.6.0); extra == "docs"
Requires-Dist: toml (>=0.10.2,<0.11.0)
Requires-Dist: typing-extensions (>=3.7.4,<4.0.0)
Project-URL: Repository, https://github.com/Kircheneer/netlint
Description-Content-Type: text/markdown

**Note: Still in active development and potentially subject to major changes - keep this in mind when using this.**

# Netlint

![Build workflog](https://github.com/Kircheneer/netlint/actions/workflows/main.yml/badge.svg)
[![Documentation Status](https://readthedocs.org/projects/netlint/badge/?version=latest)](https://netlint.readthedocs.io/en/latest/?badge=latest)

Performs static analysis on network device configuration files.

Linters have long since been a standard way of assessing code quality
in the software development world. This project aims to take that idea
and apply it to the world of network device configuration files.

Find the latest copy of the documentation [here](https://netlint.readthedocs.io).

Potential uses of this tool are

- Linting network device configurations generated in
  CI/CD automation pipelines
- Assistance when building out new configurations for
  both traditional and automated deployment
- Basic security auditing of configuration files

## Example usage

Below is an example of how to use this based on one of the faulty test
configurations (executed from the project root):

```
$  netlint --nos cisco_ios tests/cisco_ios/configurations/faulty.conf
IOS101 Plaintext user passwords in configuration.
-> username test password ing
IOS102 HTTP server not disabled
-> ip http server
-> ip http secure-server
IOS103 Console line unauthenticated
-> line con 0

```

## Installation

There are multiple ways of installing this software.

A package is available on [PyPI](https://pypi.org/project/netlint/),
therefore you can simply install with `pip install netlint` and
then simply run `netlint`.

If you prefer to install directly from
GitHub, here is how you would go about that.

```bash
$ git clone https://github.com/Kircheneer/netlint.git
$ cd netlint
$ pip install .
$ netlint --help
Usage: netlint [OPTIONS] COMMAND [ARGS]...

  Lint network device configuration files.

  [...]
```

