v3.5.0
This release drops support for Go 1.16 and includes many new features.
- cmd/shfmt
- Switch to
-ln=auto
by default to detect the shell language - Add support for long flags, like
--indent
for-i
- Switch to
- syntax
- Allow extglob wildcards as function names like
@() { ... }
- Add support for heredocs surrounded by backquotes
- Add support for backquoted inline comments
- Add
NewPos
to createPos
values externally - Support escaped newlines with CRLF line endings
Minify
no longer omits a leading shebang comment- Avoid printing escaped newlines in non-quoted words
- Fix some printer edge cases where comments weren't properly spaced
- Allow extglob wildcards as function names like
- fileutil
- Add
Shebang
to extract the shell language from a#!
line
- Add
- expand
- Reimplement globstar
**
globbing for correctness - Replace
os.Stat
as the last direct use of the filesystem
- Reimplement globstar
- interp
- Add
CallHandler
to intercept all interpretedCallExpr
nodes - Add
ReadDirHandler
to intercept glob expansion filesystem reads - Add
StatHandler
to interceptos.Stat
andos.Lstat
calls - Always surface exit codes from command substitutions
- Add initial and incomplete support for
set -x
- Add support for
cd -
ascd "$OLDPWD"
- Avoid panic on
set - args
- Add
Binaries built on go version go1.18.2 linux/amd64
via a shell script.
Consider becoming a sponsor if you benefit from the work that went into this release!