Releases: yassinebenaid/bunster
Releases · yassinebenaid/bunster
v0.13.0
What's Changed
- Allow using
break
andcontinue
within nested scopes. - Add builtin flags parser. learn more
- Support
return
keyword. - Support
unset
builtin command. - Support indexed arrays.
full changelog
- fix: running
bunster get
to get packages that already available locally skips writing tobunster.yml
by @yassinebenaid in #255 - allow use of
break
andcontinue
in nested scopes by @yassinebenaid in #256 - support the
return
keyword by @yassinebenaid in #257 - bug fix: comments are not recognized in compounds by @yassinebenaid in #258
- support
unset
keyword by @yassinebenaid in #259 - support indexed arrays by @yassinebenaid in #261
- support parameter expansion on arrays and positionals by @yassinebenaid in #263
- added builtin flags parser by @yassinebenaid in #264
- Update copyright date by @xplshn in #265
- add brew installation by @yassinebenaid in #266
- cleanup by @yassinebenaid in #267
New Contributors
Full Changelog: v0.12.1...v0.13.0
v0.12.1
This release does not change the content. the action job of release v0.12.0 has failed. and docker images has not been published. that is what this release solves.
Full Changelog: v0.12.0...v0.12.1
v0.12.0
What's Changed
- Add a package manager 🎉. now you can share and consume modules as libraries. learn more
bunster get github.com/yassinebenaid/hello-bunster@684da09acea05d9351c4c61d4296bc696f729533
- Add support for the
case..in
statement. learn morecase foo in fo*) echo foobar;; *) echo baz;; esac
- Support parameter expansion (eg.
${var:-word}
...) - New builtin commands:
cd
,pwd
,which
,exit
- Fix bug that causes single quotes to break the parser.
- Fix redirections on functions does not get inherited
Full Changelog
- fix: grammar, punctuation and spelling on introduction by @yunz-dev in #235
- runtime: rewrite the command executor by removing unnecessary abstractions and fixing bad function handling by @yassinebenaid in #236
- support
case..in
statement by @yassinebenaid in #239 - Fix single quote is parsed specially when it should't causing entire parser to break by @yassinebenaid in #240
- support
exit
builtin keyword by @yassinebenaid in #241 - add package manager by @yassinebenaid in #242
- package management: update docs by @yassinebenaid in #245
- add
cd
andpwd
and$PWD
builtin commands and variables by @yassinebenaid in #246 - Support parameter expansion
${...}
by @yassinebenaid in #249 - icons edit by @yassinebenaid in #250
- builtin command
which
by @yassinebenaid in #251 - seperate the e2e tests for consistency by @yassinebenaid in #252
- docs update by @yassinebenaid in #253
Full Changelog: v0.11.0...v0.12.0
v0.11.0
What's Changed
- support modules, you can distribute your code across files. lear more
- support arithmetic expressions
$(())
,(())
andlet
. lear more - fix bugs in embedding
- fix bugs in pipelines
Full changelog
- pipelines: commands within pipeline to run in a sub-shell by @yassinebenaid in #224
- embedding: fix embedding nested paths panics by @yassinebenaid in #225
- Support arithmetic operations by @yassinebenaid in #226
- Support
let
keyword for evaluating arithmetic expressions by @yassinebenaid in #228 - arithmetics: support
for ((...))
loop by @yassinebenaid in #229 - add modules support by @yassinebenaid in #231
- Docs update by @yassinebenaid in #233
- cleanup by @yassinebenaid in #234
Full Changelog: v0.10.0...v0.11.0
v0.10.0
New Features
- Add support for conditional expressions and commands.
test -v var
[ -t 1 ]
[[ 10 -gt 20 ]]
- Support static file embedding
@embed main.js
embed cat main.js | node
embed ls .
- Support
defer
keyword for deferring the execution of a command or group of commands
defer echo foo
defer {
echo bar
}
defer (
echo baz
)
- Support
shift
builtin command for shifting positional arguments - Support
UTF-8
encoding
echo "雷卷是一个好程序员!"
- Bunster is now available on nixpkgs. Special thanks to @yunz-dev ❤️
Bug fixes
- fix command substitution causes the entire program to exit when the status is non zero.
- fix a panic when too many commands are present in loops header
Full Changelog
- Bug fix in docs by @yassinebenaid in #192
- Update Docs by @yassinebenaid in #194
- Add pipelines documentation by @yassinebenaid in #196
- add lists documentation by @yassinebenaid in #197
- bug fix in docs by @yassinebenaid in #198
- Add async commands documentation by @yassinebenaid in #200
- Support the
[...]
,[[...]]
andtest
builtin commands by @yassinebenaid in #193 - test compound: add support for the '-v' operator by @yassinebenaid in #201
- Conditionals: make sure symlinks are followed by @yassinebenaid in #203
- added variables documentation by @yassinebenaid in #205
- conditionals: do not alter the status code before test is done by @yassinebenaid in #206
- Fix: command substitution failures stopes entire program from execution when used in variable assignments by @yassinebenaid in #207
- Asynchronous commands to read input from
/dev/null
by @yassinebenaid in #208 - Fix race-condition in tests by @yassinebenaid in #209
- conditionals: support the negation
!
, logical operators-a
,-o
,&&
and||
. and grouped expressions by @yassinebenaid in #210 - conditionals: added missing tests by @yassinebenaid in #211
- Docs: added nixpkgs install by @yunz-dev in #213
- Support embedding 🎉 by @yassinebenaid in #212
- embedding: prevent use of invalid patterns in path by @yassinebenaid in #214
- Support
shift
builtin command by @yassinebenaid in #215 - Fix error when passing non local paths to
@embed
and update docs by @yassinebenaid in #216 - Support
defer
keyword to defer execution of a command or group of commands by @yassinebenaid in #217 - Add
UTF-8
support (i18n
) by @yassinebenaid in #218 - Docs: add
groups and subshells
section by @yassinebenaid in #219 - fix panic when using more than a command in
while
anduntil
loops head by @yassinebenaid in #220 - Docs: add defer section by @yassinebenaid in #221
- release v0.10.0 by @yassinebenaid in #222
Full Changelog: v0.9.0...v0.10.0
v0.9.0
New Features
- support
for
loop - support
local
keyword for declaring local variables - support
export
keyword for declaring exported variables - support
loadenv
builtin command to load variables from.env
files - support
true
andfalse
builtin commands
Chanelog
- Support
for
loop (range) by @yassinebenaid in #177 - Added missing tests by @yassinebenaid in #179
- Fix link to goals/vision in README by @ianwalter in #181
- Support
local
variables by @yassinebenaid in #180 - Support
export
builtin by @yassinebenaid in #182 - Fix: function declaration in subshells afects global shell && exiting the program does not give enough time for stream manager to be destroyed by @yassinebenaid in #187
- Fix function's exit code is always zero by @yassinebenaid in #188
- Support
loadenv
builtin command by @yassinebenaid in #189 - Rewrite documentation by @yassinebenaid in #190
- bump release version by @yassinebenaid in #191
New Contributors
- @ianwalter made their first contribution in #181
Full Changelog: v0.8.0...v0.9.0
v0.8.0
New Features
- Add
functions
support - Support background commands ('&')
- Support status inversion (
! command
) - Support
*
and@
special variables
Changelog
- Add support for asynchronous commands
&
by @yassinebenaid in #140 e2e
: cover pipelines by @yassinebenaid in #141- Add support for exit code inversion (
!
) by @yassinebenaid in #144 - Add
functions
support by @yassinebenaid in #145 - fix: pipeline ends are no longer proxied because all streams are singleton by @yassinebenaid in #146
- fix: nested functions panic by @yassinebenaid in #147
e2e
: cover lists by @yassinebenaid in #148e2e
: cover command groups by @yassinebenaid in #149e2e
: tests to run concurrently by @yassinebenaid in #151- e2e: implement timeout in tests by @yassinebenaid in #153
- fix: subshell's exit code remanins unchanged by @yassinebenaid in #154
- fix panic when passing environment variables to commands with zero value by @yassinebenaid in #155
- Update README.md by @yassinebenaid in #156
- fix panic on redirections on 'if' compound by @yassinebenaid in #157
- feat: install script by @yunz-dev in #150
- fix panic when declaring functions in pipeline by @yassinebenaid in #158
- General bug fixes regarding functions and compounds by @yassinebenaid in #159
- fix: shadow positional arguments within functions by @yassinebenaid in #160
- Fix: functions to run in same context as outer shell & environment variables passed to functions to be exported by @yassinebenaid in #161
- Allow redirection of
stderr
inline by @yassinebenaid in #162 - move stream manager initialization to main by @yassinebenaid in #163
- add checksum verification to installation and simplify redundancy by @yassinebenaid in #164
- make default installation path is .local/bin by @yassinebenaid in #165
- functions exit code to be inherited by @yassinebenaid in #166
- Support for
*
and@
special variables by @yassinebenaid in #170 - encapsulate entire release workflows by @yassinebenaid in #172
- fix installation path on macos by @yassinebenaid in #173
- Developers guildline by @yassinebenaid in #171
- e2e: handle unhandled case by @yassinebenaid in #175
- Update docs by @yassinebenaid in #176
New Contributors
Full Changelog: v0.7.1...v0.8.0
v0.8.0-pre2
Full Changelog: v0.8.0-pre...v0.8.0-pre2
v0.8.0-pre
New Features
- Add
functions
support - Support background commands ('&')
- Support status inversion (
! command
) - Support
*
and@
special variables
Changelog
- Add support for asynchronous commands
&
by @yassinebenaid in #140 e2e
: cover pipelines by @yassinebenaid in #141- Add support for exit code inversion (
!
) by @yassinebenaid in #144 - Add
functions
support by @yassinebenaid in #145 - fix: pipeline ends are no longer proxied because all streams are singleton by @yassinebenaid in #146
- fix: nested functions panic by @yassinebenaid in #147
e2e
: cover lists by @yassinebenaid in #148e2e
: cover command groups by @yassinebenaid in #149e2e
: tests to run concurrently by @yassinebenaid in #151- e2e: implement timeout in tests by @yassinebenaid in #153
- fix: subshell's exit code remanins unchanged by @yassinebenaid in #154
- fix panic when passing environment variables to commands with zero value by @yassinebenaid in #155
- Update README.md by @yassinebenaid in #156
- fix panic on redirections on 'if' compound by @yassinebenaid in #157
- feat: install script by @yunz-dev in #150
- fix panic when declaring functions in pipeline by @yassinebenaid in #158
- General bug fixes regarding functions and compounds by @yassinebenaid in #159
- fix: shadow positional arguments within functions by @yassinebenaid in #160
- Fix: functions to run in same context as outer shell & environment variables passed to functions to be exported by @yassinebenaid in #161
- Allow redirection of
stderr
inline by @yassinebenaid in #162 - move stream manager initialization to main by @yassinebenaid in #163
- add checksum verification to installation and simplify redundancy by @yassinebenaid in #164
- make default installation path is .local/bin by @yassinebenaid in #165
- functions exit code to be inherited by @yassinebenaid in #166
- Support for
*
and@
special variables by @yassinebenaid in #170 - encapsulate entire release workflows by @yassinebenaid in #172
- fix installation path on macos by @yassinebenaid in #173
- Developers guildline by @yassinebenaid in #171
- e2e: handle unhandled case by @yassinebenaid in #175
- Update docs by @yassinebenaid in #176
New Contributors
Full Changelog: v0.7.1...v0.8.0-pre
v0.7.1
What's Changed
- Update docs by @yassinebenaid in #111
- Update LICENSE by @yassinebenaid in #113
- Optimize stream manager: implement
zero-duplication
to open files once and reference it many times in redirections by @yassinebenaid in #115 e2e
: cover simple commands and expressions by @yassinebenaid in #116- Optimize build process by @yassinebenaid in #117
e2e
: cover redirection tests by @yassinebenaid in #118e2e
: cover more redirection cases & add support for test filtering by @yassinebenaid in #119- docs: added a brief gif about the usage by @yassinebenaid in #120
- Add multi-platform builds by @tangowithfoxtrot in #121
e2e
: cover error handling in simple commands and redirections by @yassinebenaid in #122- build(deps-dev): bump vite from 5.4.11 to 5.4.14 in /docs by @dependabot in #123
e2e
: cover error handling in redirections & fix bug in stream manager unintentionally closing the global stdio by @yassinebenaid in #124- add more linters by @yassinebenaid in #125
- Some spelling fixes by @simonw in #127
- Fix: comments in the compound commands are not recognized by @yassinebenaid in #130
- Fix Unix-specific cross-device errors by @micl2e2 in #135
- fix build command doesn't work on macos by @yassinebenaid in #137
- Fix comments are not recognized in
while
,until
,{...}
and(...)
compounds by @yassinebenaid in #138 - fix: closing a file descriptor should not be an issue until it is used by @yassinebenaid in #139
New Contributors
- @tangowithfoxtrot made their first contribution in #121
- @dependabot made their first contribution in #123
- @simonw made their first contribution in #127
- @micl2e2 made their first contribution in #135
Full Changelog: v0.7.0...v0.7.1