How to: Builds, Languages & Linting
`bin/`, `checks/`, `cicd/` or language specific directories:

- `lint.sh` - lints one or more files, auto-determines the file types, parses lint headers and calls appropriate scripts and tools. Integrated with my custom `.vimrc`
- `run.sh` - runs one or more files, auto-determines the file types, any run or arg headers and executes each file using the appropriate script or CLI tool. Integrated with my custom `.vimrc`
- `check_*.sh` - extensive collection of generalized tests - these run against all my GitHub repos via [CI](https://harisekhon.github.io/CI-CD/). Some examples:

  - Programming language linting:

    - [Python](https://www.python.org/) (syntax, pep8, byte-compiling, reliance on asserts which can be disabled at runtime, except/pass etc.)
    - [Perl](https://www.perl.org/)
    - [Java](https://www.java.com/en/)
    - [Scala](https://www.scala-lang.org/)
    - [Ruby](https://www.ruby-lang.org/en/)
    - [Bash](https://www.gnu.org/software/bash/) / Shell
    - Misc (whitespace, custom code checks etc.)

  - Build System, Docker & CI linting:

    - [Make](https://www.gnu.org/software/make/)
    - [Maven](https://maven.apache.org/)
    - [SBT](https://www.scala-sbt.org/)
    - [Gradle](https://gradle.org/)
    - [Travis CI](https://travis-ci.org/)
    - [Circle CI](https://circleci.com/)
    - [GitLab CI](https://docs.gitlab.com/ee/ci/)
    - [Concourse CI](https://concourse-ci.org/)
    - [Codefresh CI](https://codefresh.io/)
    - [Dockerfiles](https://docs.docker.com/engine/reference/builder/)
    - [Docker Compose](https://docs.docker.com/compose/)
    - [Vagrantfiles](https://www.vagrantup.com/docs/vagrantfile)