Skip to content

mcandre/slick

Repository files navigation

slick: a CI-ready shell language syntax checker

Docker Pulls go.dev reference Test Test-Futureproof-Dependencies Test-Futureproof-Language Test-Futureproof-OS license Donate

squirtle squad

SUMMARY

slick provides a reliable syntax checker for pure POSIX sh scripts, as sh itself is often aliased with superset languages from ash to zsh.

EXAMPLES

$ slick -n examples; echo "$?"
2017/09/14 17:46:09 examples/apples.bash:2:8: arrays are a bash feature
2017/09/14 17:46:09 examples/hello.sh:2:6: reached EOF without closing quote '
1

$ slick -help
  -help
        Show usage information
  -n    Validate syntax
  -version
        Show version information

ABOUT

slick provides an alternative to sh -n, which is problematic for a number of minor reasons:

  • sh is hardly ever a bare bones POSIX sh interpreter on most UNIX systems, but usually soft linked to bash, ksh, ash, or even stranger things. So anyone genuinely interested in vetting their #!/bin/sh scripts for compliance risks getting false negative scans for scripts that actually contain bashisms, kshisms, and so on. By contrast, slick guarantees pure POSIX parsing, so that scripts are scanned consistently regardless of the particular environment configuration.
  • sh is difficult to obtain in Windows. Cygwin-like environments are themselves difficult to setup. Should a unix, Linux, Windows, or other system desire syntax checking, slick is easy to obtain by gox ports, or through the wonderfully cross-platform Go toolchain.

INSTALLATION

See INSTALL.md.

SEE ALSO

🌀

About

a CI-ready shell language syntax checker

Resources

License

Stars

Watchers

Forks

Packages

No packages published