Releases: davidovich/summon
v0.18.0 Feature release
What's Changed
- feat: add zsh shell completion support by @davidovich in #105
Full Changelog: v0.17.2...v0.18.0
v0.17.2
What's Changed
- fixed a bug where the run fn could not have params by @davidovich in #104
Full Changelog: v0.17.1...v0.17.2
Bugfix release
v0.17.0
v0.17.0 Feature Release
Adds user input prompting features by leveraging the github.com/cqroot/prompt library (which itself is built on bubbletea).
What's Changed
- Implement input by @davidovich in #102
Full Changelog: v0.16.0...v0.17.0
v0.16.0
v0.16.0 Feature Release
New {{ swallowargs }} template function and destination dir for the {{ summon }} function.
swallowargs: use this when you do not want command-line specified args to be appended to the execution handle, which is the default behavior in summon.- The
summontemplate function now takes an optional second parameter to specify where the file should be summoned to, similarly to the-ocommand line argument.
Bugs fixed:
- When using summon without the
runsub-command, you could not use the--treeflag as advertised by help. This has been fixed.
What's Changed
- Modernize by @davidovich in #92
- removes circle-ci integration by @davidovich in #93
- adds github actions badge by @davidovich in #94
- re-enable coverage publish by @davidovich in #95
- clone using https and PAT by @davidovich in #96
- adds destination when not able to scaffold by @davidovich in #97
- adds a swallowargs template function by @davidovich in #98
- teach the summon templ func to allow dest by @davidovich in #99
- withoutRunCmd config --tree should imply --ls by @davidovich in #101
Full Changelog: v0.15.0...v0.16.0
v0.15.0 Feature Release
Optional commands
The new feature allows a command (or "cmd") to be templated in such a way that it can yield an empty value.
The purpose of this feature is to make the CLI tool compatible in multiple environments. For example, if you have a command that sets up a container and its environment, you may want to be able to call that same command from within the container itself. With the new feature, the command can be templated to return an empty value when called within the container.
You can thus install the summon cli inside the container itself and make decisions based on call site. Below is an example where when called from inside container (as defined by an arbitrary inContainer environment variable), the cmd is empty (because the container provides the environment). This effectively allows the same invocation from inside or outside of the container.
cmd:
- |-
{{ if not (env "inContainer") }}
# setup container call
{{ end }}What's Changed
- adds go.yml workflow for building with actions by @davidovich in #85
- Allow fully templated commands by @davidovich in #87
- Adds debug logging by @davidovich in #88
- Revert un conditional shlex by @davidovich in #89
Full Changelog: v0.14.0...v0.15.0
v0.14.0 Feature Release
Enhanced command-line parsing
This release brings enhanced proxy features to command invocations. You can now provide flags (global and local), help, completions and sub-commands to the proxied command. In essence, this feature provides a better parameter parser for the proxied commands. More info in the enhanced command description section of the readme documentation.
You can now pass --help or -h down to the proxied commands (before this, help was consumed early by Summon, not allowing sub-commands to process it).
There is one breaking change in the exec: section of the config file. The command handles have moved under an environments: key, and a new flags: key appeared for managing global flags. Both are nested in the exec: key.
What's Changed
- Feature: complex command and subcommand descriptions and completions. by @davidovich in #77
- Re-add summonables in completion by @davidovich in #79
- Support passing help to sub-commands by @davidovich in #80
Full Changelog: v0.13.0...v0.14.0
v0.13.0 Feature release
This feature release drops support for the packr library in favor of go's embed feature. This is a breaking change.
Because embed.FS usage requires assets to be present in a sibling folder to the package using the embedding directive, your data repository might need to be refactored.
You have two choices:
- If you want to enable
go installof your summon data executable, position theassetsand thesummon.goentry point inside asummondirectory. Upon install, this will create an executable namedsummon. - If you do not need
go installor if your repository has the wanted name for your exe, just move thesummon.gofile at the root (at the same level as theassetsdirectory).
You can delete the packr related files.
The https://github.com/davidovich/summon-example-assets repo has been updated to reflect the new layout.
What's Changed
- Implement fs by @davidovich in #76
Full Changelog: v0.12.0...v0.13.0
v0.12.0 Feature release
This feature release brings template functions to aid in crafting argument passing to invokers.
Feature Highlight
- New
arg,args,.osArgsandruntemplate functions. - Driver program can be renamed.
- Can configure the runner to remove the
runsub-command to allow natural proxy to invokers.
More info in the documentation.
Note that this is the last release to use packr boxes as #73 will be implemented soon. We will be removing the packr dependency in favor of go 1.16 embed feature.
What's Changed
- adds args,osArgs predefined data for config tmpl by @davidovich in #63
- adds template naming according to driver exe name by @davidovich in #64
- Better makefile in scaffolded data by @davidovich in #65
- allow anchoring invocables directly to main command by @davidovich in #68
- Fix default outputdir by @davidovich in #70
- Simplify testing helpers by @davidovich in #74
- Allow running commands by @davidovich in #75
Full Changelog: v0.11.0...v0.12.0
v0.11.0 breaking change
Breaking change on summon.config.yaml
This release brings a breaking change on the handle format of exec handles. The handles are now arrays of params. Prior to this they were of string format, this has proved difficult to use when passing multiple args to the invoker.
Before:
...
exec:
bash:
echo: echo davidAfter (notice the array):
...
exec:
bash:
echo: [echo, david]