Releases: davidovich/summon
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
summon
template function now takes an optional second parameter to specify where the file should be summoned to, similarly to the-o
command line argument.
Bugs fixed:
- When using summon without the
run
sub-command, you could not use the--tree
flag 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 install
of your summon data executable, position theassets
and thesummon.go
entry point inside asummon
directory. Upon install, this will create an executable namedsummon
. - If you do not need
go install
or if your repository has the wanted name for your exe, just move thesummon.go
file at the root (at the same level as theassets
directory).
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
,.osArgs
andrun
template functions. - Driver program can be renamed.
- Can configure the runner to remove the
run
sub-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 david
After (notice the array):
...
exec:
bash:
echo: [echo, david]
Feature release v0.10.0
New in this release:
- You can now use go templating in
summon.config.yaml
file. - You can
summon
in the go templates, allowing instantiation and execution of packed script. - Added a debug
-d
--debug
switch and a dry-run-n
,--dry-run
switch to respectively print debugging info and see what the execution command line would look like without executing. - Now listens on CRTL-C for correct interruption of child processes.
Feature release v0.9.0
- Refactor for documentation purposes.
- Move scaffolding to internal package
Feature release v0.8.0
New in this release:
- Add run command validation
- Add bash completion of Summonable data and runners. Use
source <(summon completion)
in your .bashrc to have up-to-date completions. - (Engineering) Refactor interfaces.
- (Engineering) Improve test coverage, use Github pages and summon to output coverage on main project page.