/pkgcheck

Code style enforcement for bash programs.

Primary LanguagePythonApache License 2.0Apache-2.0

pkgcheck

This is a bashate fork for Arch Linux's PKGBUILDs.

  • Free software: Apache license

Install

pip install -u pkgcheck-arch

Use

pkgcheck path/to/PKGBUILD

Currently Supported Checks

Errors

Basic white space errors, for consistent indenting

  • E001: check that lines do not end with trailing whitespace
  • E002: ensure that indents are only spaces, and not hard tabs
  • E003: ensure all indents are a multiple of 4 spaces
  • E004: file did not end with a newline
  • E005: unquoted $srcdir or $pkgdir

Structure Errors

A set of rules that help keep things consistent in control blocks. These are ignored on long lines that have a continuation, because unrolling that is kind of "interesting"

  • E010: do not on the same line as for
  • E011: then not on the same line as if or elif
  • E012: heredoc didn't end before EOF
  • E020: Function declaration not in format ^function name {$

Obsolete, deprecated or unsafe syntax

Rules to identify obsolete, deprecated or unsafe syntax that should not be used

  • E040: Syntax errors reported by bash -n
  • E041: Usage of $[ for arithmetic is deprecated for $((
  • W042: Local declaration hides errors
  • W043: Arithmetic compound has inconsistent return semantics
  • E044: Use [[ for =~,<,> comparisions

Style enforcer

  • E060: Last line isn't a newline
  • E061: Multiple final newlines
  • W062: Unsafe quotes