To update or switch versions, run `webi shfmt@stable` or `webi shfmt@beta`, etc.
-# Cheat Sheet
+## Cheat Sheet
-> shfmt is a shell parser, formatter and interpretter that supports POSIX Shell, Bash and mksh.
+> shfmt is a shell parser, formatter and interpretter that supports POSIX Shell,
+> Bash and mksh.
Usage: `shfmt <flags> <filepath>`
-Note: If given path is directory, all shell scripts in the directory will be used.
+Note: If given path is directory, all shell scripts in the directory will be
+used.
-## Flags:
+### Frequently used flags:
-*-version*
+```txt
+-version
Show version and exit.
-*-l*
+-l
List files whose formatting differs from shfmt's.
-*-w*
+-w
Write result to file instead of stdout.
-*-d*
+-d
Error with a diff when the formatting differs.
-*-s*
+-s
Simplify the code.
-*-mn*
- Minify the code to reduce its size (implies -s).
-
-*-ln* <str>
- Language variant to parse (bash/posix/mksh/bats, default "bash").
-
-*-p*
- Shorthand for -ln=posix.
-
-*-filename* str
- Provide a name for the standard input file.
-
-*-i* <uint>
- Indent: 0 for tabs (default), >0 for number of spaces.
-
-*-bn*
- Binary ops like && and | may start a line.
-
-*-ci*
- Switch cases will be indented.
+-f
+ Recursively find all shell files and print the paths.
+```
-*-sr*
- Redirect operators will be followed by a space.
+### Examples
-*-kp*
- Keep column alignment paddings.
+To list files being formatted and write directly to file
-*-fn*
- Function opening braces are placed on a separate line.
+```bash
+shfmt -l -w <filepath>
+```
-*-f*
- Recursively find all shell files and print the paths.
+To show differences between shfmt formatting and original file formatting
-*-tojson*
- Print syntax tree to stdout as a typed JSON.
+```bash
+shfmt -d <filepath>
+```
-See https://github.com/mvdan/sh for more info.
\ No newline at end of file
+See https://github.com/mvdan/sh for more info.