https://github.com/lpenz/omnilint
Statically analyse any file with the appropriate tools
https://github.com/lpenz/omnilint
docker linting python shell
Last synced: about 2 months ago
JSON representation
Statically analyse any file with the appropriate tools
- Host: GitHub
- URL: https://github.com/lpenz/omnilint
- Owner: lpenz
- License: mit
- Created: 2017-02-09T20:08:41.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-02-18T17:05:51.000Z (over 2 years ago)
- Last Synced: 2025-03-01T10:45:42.015Z (over 1 year ago)
- Topics: docker, linting, python, shell
- Language: Python
- Size: 56.6 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/marketplace/actions/ghaction-omnilint)
[](https://github.com/lpenz/omnilint/actions/workflows/ci.yml)
[](https://github.com/lpenz/omnilint/releases)
[](https://hub.docker.com/repository/docker/lpenz/omnilint)
# omnilint
## TL;DR
Use *omnilint* as a github action with a
[workflow](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/configuring-a-workflow)
file like the following:
```yaml
name: CI
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: docker://lpenz/omnilint:0.5.2
```
Another option is using this repository's callable workflow:
```yaml
name: CI
on: push
jobs:
omnilint:
uses: lpenz/ghworkflow-rust/.github/workflows/rust.yml@v0.5.2
```
Or add the following to your *.travis.yml* to get a job that performs
static analysis on the files of your repository:
```yaml
jobs:
include:
- name: omnilint
language: generic
install: docker pull lpenz/omnilint
script: docker run --rm -u "$UID" -v "$PWD:$PWD" -w "$PWD" lpenz/omnilint
```
## What is omnilint
**omnilint** is a container-based tool that provides a unified interface for the
static analysis of any file, using the appropriate tool.
File Linter
.c \ / cppcheck
.sh - omnilint - shelcheck
.py / | \ pyflakes
gcc-like output
json output
omnilint is specially useful when combined with CI tools
like [travis](https://travis-ci.org), [jenkins](https://jenkins.io), etc.
## Installation and local usage
Requirements:
- docker
The easier way to install omnilint is by pulling the container from
[docker hub](https://hub.docker.com/r/lpenz/omnilint/):
docker pull lpenz/omnilint
Using omnilint is a matter of starting the container with the directory with the
files to be analyzed mapped:
docker run --rm -u "$UID" -v "$PWD:$PWD" -w "$PWD" omnilint
You can also simply call the script `bin/omnilint-docker-run` that is present in
the repository.