- Add github_markdown library to libraries index
c15c91e24 - Add
arg.completionsaa25add20 - Migrate to new completions pattern format
a9ed8af6e - Fix completions for a default command
27c9f468e - Add aliases for flags
4c44450cb - Add support for negatable flags (
--[no-]color)fc6445566 - Compare
v1.3.8..v1.4.0
- Change
command.argfileto apply defaults instead of prepending the command line736ced8e6 - Allow disabling and overriding argfile with env var
ad82d59d2 - Compare
v1.3.7..v1.3.8
- Add support for evented file watcher
357dd255c - Update settings JSON schema with
watch_*options5aba9bef7 - Add
bold_underlinedto the color library0f90ca518 - Remove approvals.bash (
bashly add test)f4e8ea629 - Add support for command argfile
1086e984c - Add argfile example
5c36a85f7 - Compare
v1.3.6..v1.3.7
- Switch from
filewatchertolisten0b32b694d - Fix filewatcher interrupt
b3f84ae3c - Compare
v1.3.5..v1.3.6
- Move global variable declarations after environment variable declarations
cc5a29d88 - Add word_wrap option to settings
f6d6c7dac - Compare
v1.3.4..v1.3.5
- Add support for captuing
--helpwhen usingcatch_all26d6f19c5 - Fix local variables leaking from internal functions
42cb20bbf - Add
Settings.extra_lib_dirsto allow loading files from multiple locations27d4305d9 - Compare
v1.3.3..v1.3.4
- Add misisng validation for
env_var.validate55a3946db - Fix validation running twice for environment variables
4d7e6d68a - Add array syntax to
validate4b3f7410c - Add support for per-environment settings
522d2b895 - Compare
v1.3.2..v1.3.3
- Fix function name in root command comment
5775da6fd - Compare
v1.3.1..v1.3.2
- Fix render markdown command examples
21b786d30 - Add
markdown_githubrender template754ca5085 - Add ability to choose a different formatter (internal, none, shfmt)
efc015320 - Add ability to override raw input
8048e6445 - Update bash version bouncer to require bash 4.2
3a3952aca - Add Command Line Manipulation example
388ab1926 - Compare
v1.2.13..v1.3.1
- Fix premature exit in
validate_not_emptyvalidation functionb96ba3596 - Add
stacktracestandard library03b78561c - Add examples/stacktrace
52073cc77 - Compare
v1.2.12..v1.2.13
- Drop support for Ruby 3.1
a735ee00d - Fix validations to only run once
a3075a024 - Add settings for internal function names
8fa881e28 - Compare
v1.2.11..v1.2.12
- Fix quoted heredocs
4b264646a - Compare
v1.2.10..v1.2.11
- Add
header_overridecommand optiond7a57e475 - Rename
header_overridetohelp_header_override2a8b5ded7 - Add example for
help_header_overrideaa00c7510 - Update JSON schema with
help_header_override6677f4da7 - Update
bashly docwithcommand.help_header_override4e50fe17e - Compare
v1.2.9..v1.2.10
- Update colors library to support auto-colors based on TTY
a4bbae9a7 - Add
--quiettobashly addcommandca0a54688 - Update documentation domain to bashly.dev
d05605cb9 - Compare
v1.2.8..v1.2.9
- Add support for avoiding execution if the script is sourced
4d83222ba - Revert 9167c49 to allow calling
run ...internallyd25c718fc - Declare
versionandlong_usageas globals for consistency and clarity of intente9a9a76fa - Move
long_usagedefinition frominitializetorun54beb86ef - Add Internal Run example
4a1b2b9b8 - Add support for whalebrew
f33c663bc - Compare
v1.2.7..v1.2.8
- Update version specifications for all dependencies
6bf0c4a04 - Add support for tweaking production/development output
c23d7053b - Fix shellcheck unused variable on
other_argsin productionf78c6e9ae - Fix view markers for user files
cc3896edb - Update dependency check to show all missing dependencies at once
492510645 - Add support for declaring aliases for internal global variables
5264d511c - Move global var declarations from
run()toinitialize()9167c4989 - Update settings JSON schema
b4e7e4dd4 - Add
buildas an alias tobashly generated64bc3672 - Update default script header
c85276cde - Compare
v1.2.6..v1.2.7
- Fix array variables scope
ed7f24043 - Compare
v1.2.5..v1.2.6
- Move root variables from
run()toinitialize()f76c53b63 - Compare
v1.2.4..v1.2.5
- Add
command.variablesas a convenience utility for defining global command variables653888684 - Update JSON schema to include
command.variables28953fb52 - Refactor
command.variablesto a newVariableobject3e5a06069 - Add black and white to color library
0573e0f5d - Compare
v1.2.3..v1.2.4
- Fix docker image for multi-arch
5660a3e33 - Fix INI library when loading multiple files
6bfb1bc07 - Add sub dependencies to avoid Ruby 3.3.5 warnings
30b7318a9 - Fix
conflictsin fixed flags152069af7 - Compare
v1.2.2..v1.2.3
- Add support for needy flags:
flag.needsfadda94d8 - Add needy flag example
43e3b386f - Update JSON schemas
868650c6a - Update flag usage to show its conflicts and needs
db23575c3 - Refactor Command#introspection
a66db36f3 - Add support for environment variable validations
bccd3b028 - Update validations example to show environment variable validation
ee6a4c997 - Update script generation to allow bash variables in some YAML strings
6660d1680 - Allow ad-hoc revealing of private commands, flags, and environment variables
d2876d728 - Add private-reveal example
8c940429b - Update completions library to consider private visibility setting
e16dde102 - Update mandoc/markdown library to consider private visibility setting
c49d94df1 - Compare
v1.2.1..v1.2.2
- Add validation to disallow required args before optional
f2d62764b - Fix shellcheck violations and reduce use of
eval41da133a7 - Fix default command not being triggered when only flags are provided
c65983004 - Fix prompt in bashly shell
de231e899 - Compare
v1.2.0..v1.2.1
- Fix usage string when there is a forced default command
d50607bee - Add 'Global options' caption when appropriate
105a0f893 - Update descriptions in schemas/strings.json
6592666f7 - Remove redundant code in usage function
f87986a7d - Update default command usage to show optional brackets
854036d5c - Add
show_examples_on_errorsetting5e58388d1 - Add examples/command-examples-on-error
b30d2aa11 - Compare
v1.1.10..v1.2.0
- Sanitize percent signs in help messages
1f7e27c5c - Drop support for Ruby 3.0
865d6ac7b - Fix input normalization to ignore anything after the double dash (--) operator
621a15130 - Add
[--]to usage text whencatch_allis used1422bcf3b - Add
conjoined_flag_argsto allow disabling the--flag=argnormalizationd17756d2d - Compare
v1.1.9..v1.1.10
- Fix repeatable args when the input has quotes
0d35217bb - Fix repeatable flag args when the input has quotes
ab34fc059 - Improve handling of unique repeatable args and flag args
c200223a7 - Update
Approvals.bashto v0.5.18e12d559f - Compare
v1.1.8..v1.1.9
- Update
approvals.bashto v0.5.0530cb05d1 - Add support for using heredoc
adf4837f5 - Compare
v1.1.7..v1.1.8
- Refactor validations to run after assigning default values
e45580cd2 - Upgrade
approvals.bashto 0.4.2863bf9a5d - Compare
v1.1.6..v1.1.7
- Docker: Fix missing pandoc
b8f6d2cfb - Avoid rendering
inspect_args()when generating for production envdbb8816b0 - Update
approvals.bashlibrary to 0.4.19eee25ca4 - Update Dockerfile
453449725 - Build multi-arch docker image using GitHub Actions
5d169261d - Compare
v1.1.5..v1.1.6
- Allow
flag.defaultandarg.defaultto be an array ifrepeatableis true00c81ec1d - Improve JSON schema tests
6bd7a1b62 - Add YAML schema as a source to the bashly JSON schema
261d1040c - Add
allowedoption toenvironment_variable4d313a864 - Update
inspect_argsto also print managedenvironment_variables4fe17b71c - Refactor
inspect_argshandling of environment variables7c6e71240 - Compare
v1.1.4..v1.1.5
- Fix example in
bashly doc flag.arg039ab1cb3 - Add support for
uniquein repeatable flag argsb062c9349 - Disallow multiple repeatable args, and a repeatable arg that is not the last one
25431c9ef - Add support for
uniquein repeatable args4486788fd - Compare
v1.1.3..v1.1.4
- Fix
bashly completeions --install9e5d45a0e - Compare
v1.1.2..v1.1.3
- Fix shfmt excess newlines violation when using
--env production0938fca13 - Fix some incompatibilities with strict mode
b24cddff8 - Compare
v1.1.1..v1.1.2
- Upgrade
approvals.bashlibrary to version 0.4.0a68ad34f0 - Update INI library to allow using environment variables in the INI values
2e3aec7ff - Add support for custom "See Also" in mandoc renderer (
x_mandoc_see_also)4fddc7bf3 - Fix missing tmpdir library in
bashly add --source3f7b4c3a4 - Validate libraries.yml
a44cbde9d - Compare
v1.1.0..v1.1.1
- Add
bashly rendercommand4acc67bd8 - Add ability to render markdown documentation
7db612910 - Refactor module loading with autoload
62184f0f5 - Add
bashly add render_markdownlibraryd0fada7dc - Add ability to render man pages and
bashly add render_mandoclibraryfe9607b48 - Refactor render command with RenderSource model
8629d2668 - Allow arbitrary (
x-anything) values in bashly.yml906278336 - Refactor mandoc template to use x_mandoc_footer and x_mandoc_authors
b44b91f9f - Add render-mandoc man page generation example
98420de1b - Add
--showtobashly render2fcd790ba - Compare
v1.0.8..v1.1.0
- Add ini library for handling INI files with sections
e0b1e43 - Config Library: Add ability to set default value in
config_getd879ae1 - Config Library: Refactor to allow sections and use the low level INI library
f2ce7f5 - Gemspec: Add Psych dependency
3db496b - Compare
v1.0.7..v1.0.8
- Add support for auto-organizing command files in subfolders
c777968 - Pre-process config files using ERB
5e9cda4 - Compare
v1.0.6..v1.0.7
- Add completions for bashly itself
2f17228 - Add
bashly completions --installcommand3f4b1a3 - Upgrade completely version to 0.6.0
b9217aa - Add
bashly completions --uininstallcommand706b121 - Upgrade completely version to 0.6.1
0c293ac - Remove colors from
bashly shellprompt30d1e87 - Compare
v1.0.5..v1.0.6
- Add bashly interactive shell
66f0115 - Compare
v1.0.4..v1.0.5
- Allow using
bashly-settings.ymlinstead ofsettings.ymlf4d1f66 - Fix completions library to not show private commands
3002a61 - Fix completions library to not show private flags
4206b04 - Compare
v1.0.3..v1.0.4
- Move 'initialize.sh' to 'bashly add hooks'
8070b3d - Drop support for ruby 2.7
60f72e4 - Add validation alert when 'allowed' is provided without either a 'default' or 'required'
6e84cba - Update validation errors to highlight words that are YAML options
176fb1e - Fix arg.allowed and flag.allowed to allow setting without 'required' or 'default'
1601075 - Fix 'default' and 'required' for flags with a short name only
f57f611 - Compare
v1.0.2..v1.0.3
- Do not add dependencies-filter view marker when there are no dependencies
b960ded - Fix initialize.bash not being injected
35d99ed - Add before/after hooks
7665904 - Add 'bashly add hooks' command
c0ce610 - Add hooks example
7690098 - Compare
v1.0.1..v1.0.2
- Allow dot in command.name
a4ea0fa - Change settings.strict to allow any string
7072bf8 - Update dependencies option to support 'any' (e.g. wget or curl)
c3edf8c - Add a 'deps' associative array to the generated bash script
02701df - Compare
v1.0.0..v1.0.1
- Show --help and --version last in Options list
b825ad8 - Fix environment variables caption to not show if all are private
9b55da5 - Remove env var validation rule for private + default
2c5b4f7 - Add support for private flags
de6e5a2 - Allow configuring the path to bashly.yml
facd6ce - Allow customizing the path to settings.yml
b65870d - Remove environment variables from all --help messages
44df91c - Refactor libraries
3139d59 - Refactor 'bashly add libraries' command
5cf63e3 - Add support for adding libraries from a custom directory
ea124cf - Add support for git-sourced libraries
bcd35dc - Add auto upgrade support to custom library sources
470c9c6 - Remove deprecated command.short
b82b70a - Add command.name validation
0c74891 - Compare
v0.9.5..v1.0.0
- Upgrade dependencies
0319ade - Compare
v0.9.4..v0.9.5
- Fix validate --verbose command
4b07c85 - Add support for color usage elements
f4c8086 - Compare
v0.9.3..v0.9.4
- Add support for double dash as an argument parsing terminator
370982e - Add bashly doc command to show reference in the terminal
d5026e0 - Compare
v0.9.2..v0.9.3
- Fix repeatable arg validation
ed93445 - Fix all shfmt offenses
c997fa8 - Compare
v0.9.1..v0.9.2
- Add support for default command that is used instead of showing usage
bb20e6c - Remove call to root_command when there are sub-commands
60db5bf - Add the ability to choose .bash as the partials extension
ad8605d - Compare
v0.9.0..v0.9.1
- Refactor with rentactop ruleset
50ed3d0 - Fix multiple global flags
d9e339d - Fix bash completions for commands with global flags
6c52c52 - Allow command.dependencies to be a hash for custom 'how to install' messages
558f3f7 - Normalize examples to include src/*.sh artifacts
9ad208d - Update approvals.bash (bashly add test) to v0.3.2
070a2b3 - Add help command library (bashly add help)
d739db7 - Improve generated script format
8f7b529 - Change dependency command checker for testability
9683e16 - Update approvals.bash (bashly add test) to v0.3.3
4f1053d - Add ability to define a private environment variable
5a7634f - Compare
v0.8.10..v0.9.0
- Allow command.examples to be a string
bac91f2 - Compare
v0.8.9..v0.8.10
- Add --verbose to bashly validate, to show the compiled config
fe04c9e - Add command function directive
4010361 - Compare
v0.8.8..v0.8.9
- Refactor settings (internal)
e19b9c7 - Allow disabling compact flag expansion (-abc to -a -b -c)
0554c22 - Compare
v0.8.7..v0.8.8
- Update validator to alert when a default command has no args
cfbb038 - Make default environment variables values available in initialize()
d37a214 - Redirect error messages to stderr
54008d2 - Add support for global command flags
512338a - Update all examples and show global flags use in examples/docker-like
70f975d - Compare
v0.8.6..v0.8.7
- Fix 'bashly add test'
41d65f8 - Compare
v0.8.5..v0.8.6
- Update Filewatcher to ~> 2.0
51fa854 - Compare
v0.8.4..v0.8.5
- Update completely to version 0.5.0
f764a53 - Compare
v0.8.3..v0.8.4
- Switch from ERB to GTX templates
330945b - Upgrade to completely 0.4.3
3964452 - Show error instead of usage on invalid command call
fa623e6 - Compare
v0.8.2..v0.8.3
- Add command.deep_help option
aeef258 - Change the group option so that it no longer lingers
5690c4a - Rename command.deep_help to command.expose
1efb2a6 - Add help command example
6011426 - Fix parents revalidation issue
2efb8cd - Refactor command.expose to show subcommands without --help when set to 'always'
2227fdc - Add --watch to the generate command
ee2cf92 - Compare
v0.8.1..v0.8.2
- Improve non-unique command validation by testing name and aliases together
4f00423 - Improve bash completion generation
be9b05c - Fix completions for deep command aliases
d7ea262 - Compare
v0.8.0..v0.8.1
- Breaking change: Rename Command.short to Command.alias and add support for multiple values
b7b8dc1 - Add deprecation warning for command.short
8d5b656 - Validate uniqueness of command args, flags and subcommands
c4e2553 - Compare
v0.7.10..v0.8.0
- Disallow catch_all together with repeatable arg
6a8c8c8 - Refactor parse_requirements views
b9c38d4 - Add support for generating tab-indented scripts using BASHLY_TAB_INDENT
9ff5551 - Add settings.yml as an alternative to environment variables
dd95436 - Support env value in settings.yml as an alternative to BASHLY_ENV
15f92e3 - Compare
v0.7.9..v0.7.10
- Add support for repeatable args
74f0ce3 - Abort generation if the config file contains unknown keys
58f8777 - Allow generating script without file marker comments
cf8257d - Add BASHLY_ENV and bashly generate --env
93c9446 - Add a help footer when running bashly without arguments
1b851ba - Compare
v0.7.8..v0.7.9
- Remove --version from subcommands
6886475 - Compare
v0.7.7..v0.7.8
- Add bashly version to generated script header comment
806d3e1 - Fix whitelist filter on repeatable flags
3af73d9 - Add BASHLY_LIB_DIR configuration variable
4eea1f2 - Add more friendly errors on invalid configuration
5c0e230 - Adjust YAML loading to allow aliases in Ruby 3.1
a67b52f - Compare
v0.7.6..v0.7.7
- Add support for repeatable flags
fa692a9 - Make args array available in user filters
1e09ed5 - Add support for exclusive flags (conflicts)
ef95fbe - Add approvals.bash testing library
f898659 - Compare
v0.7.5..v0.7.6
- Fix validation when using split config
2d9373e - Compare
v0.7.4..v0.7.5
- Add custom command filters
436f175 - Compare
v0.7.3..v0.7.4
- Allow specifying filenames for command partials
a5065c3 - Add validations for flag and arg names
c768d0b - Compare
v0.7.2..v0.7.3
- Add support for stdin
d95a864 - Refactor catch_all (internal)
9bda55c - Refactor command scopes
2291269 - Fix autocomplete in ZSH
3e55adc - Compare
v0.7.1..v0.7.2
- Refactor library handling (internal)
adefbb1 - Make generated scripts compatible with bash strict mode
1b406e1 - Add support for private commands
e3c3217 - Add ability to import external snippets in bashly.yml
a58df1a - Add basic validation for key config properties
ce85408 - Validate the entire config prior to generating
828358f - Add bashly validate CLI command
03e08db - Compare
v0.7.0..v0.7.1
- Allow required args to appear after flags
fba6109 - Refactor library functions (internal)
a78b4c9 - Auto upgrade libraries
17fd839 - Add support for hidden comments
efe00a3 - Compare
v0.6.9..v0.7.0
- Add optional arg/flag validation functions
bafa806 - Automatically add allowed arguments to completions
567d194 - Add more custom validations
fc63e42 - Add support for NO_COLORS
1ae60a2 - Compare
v0.6.8..v0.6.9
- Add --quiet to bashly generate
0aa53db - Fix --wrap func generation excess newlines
0a262c6 - Add support for a custom script header
8899d7c - Improve friendly error on bash 3
7c20a40 - Compare
v0.6.7..v0.6.8
- Fix config library context contamination
58c6525 - Compare
v0.6.6..v0.6.7
- Add support for -abc, -a=arg and --flag=arg
6a57c72 - Sort lib files to ensure consistent inclusion
1e64bfe - Compare
v0.6.5..v0.6.6
- Upgrade completely gem to allow completions for local scripts
d8fd173 - Compare
v0.6.4..v0.6.5
- Exit with zero on --help
7ba21b6 - Add support for required catch_all arguments
6f34e27 - Compare
v0.6.3..v0.6.4
- Exit gracefully if bash version is < 4
8b442a8 - Compare
v0.6.2..v0.6.3
- Add default option for environment variables
a320ae8 - Compare
v0.6.1..v0.6.2
- Refactor completions to allow adding custom functions (like git branches)
86cc50a - Compare
v0.6.0..v0.6.1
- Add bash completion generation
6708dd2 - Compare
v0.5.1..v0.6.0
- Add support for a custom help footer
7512be5 - Compare
v0.5.0..v0.5.1
- Add support for extensible commands
8edef13 - Compare
v0.4.5..v0.5.0
- Avoid wrapping uninterrupted strings
cd18368 - Compare
v0.4.4..v0.4.5
- Fix catch all help when no args are used
715a7f4 - Compare
v0.4.3..v0.4.4
- Add ability to catch arbitrary args and flags
9e7800b - Compare
v0.4.2..v0.4.3
- Remove unused code for --version and --help in root command
a7012e2 - Add support for allowed values for flags
39a978e - Add support for whitelist in args
0b915a4 - Compare
v0.4.1..v0.4.2
- Add generate --wrap FUNCTION_NAME option to generate sourcing-friendly output
e784362 - Compare
v0.4.1rc1..v0.4.1
- Change flag arguments (--flag ARG) to allow argument that starts with a dash
f4e680d - Compare
v0.4.0..v0.4.1rc1
- Allow using short name only for flags and change '%{long}' in flag translation to '%{name}'
0523fa8 - Compare
v0.3.9..v0.4.0
v0.3.9 (2020-04-01)
Implemented enhancements:
- Consider adding stdlib for trimming a string to $COLUMNS wide #52
Merged pull requests:
- Fix config regex to work on mac #53 (DannyBen)
- Config stdlib: allow comments #51 (DannyBen)
- Add config_has_key to the config stdlib #50 (DannyBen)
v0.3.8 (2020-03-02)
Merged pull requests:
v0.3.7 (2020-02-17)
Merged pull requests:
v0.3.6 (2020-02-06)
Merged pull requests:
- Fix --version to exit with 0 #47 (DannyBen)
- Switch to github actions #46 (DannyBen)
- Resolve ruby warnings #45 (DannyBen)
v0.3.5 (2019-12-23)
Merged pull requests:
v0.3.4 (2019-12-19)
Merged pull requests:
v0.3.3 (2019-12-13)
Merged pull requests:
v0.3.2 (2019-12-10)
Merged pull requests:
v0.3.1 (2019-11-29)
Implemented enhancements:
- Add support for defining dependencies #36
Merged pull requests:
v0.3.0 (2019-11-28)
Implemented enhancements:
- Add support for required environment variables #35
Merged pull requests:
- Add support for specifying dependencies #38 (DannyBen)
- Add support for required environment variables #37 (DannyBen)
- Sanitize usage strings for quotes #34 (DannyBen)
v0.2.4 (2019-11-26)
Implemented enhancements:
Merged pull requests:
- Add YAML standard library #33 (DannyBen)
- Add examples for starts-with command pattern #32 (DannyBen)
v0.2.3 (2019-11-24)
Implemented enhancements:
Merged pull requests:
- Support endlessly nested commands #31 (DannyBen)
- Improve fixed flags usage texts #28 (DannyBen)
- Remove root command name from user filenames #27 (DannyBen)
- Multiline help message support #25 (DannyBen)
v0.2.2 (2019-11-22)
Implemented enhancements:
- Add ability to retrieve all config values from the config file #21
- Add some script for the user to specify initialization actions #17
Closed issues:
- Convert travis shellcheck to a Runfile command that checks all examples #20
Merged pull requests:
- Add config_keys function to config standard lib #23 (DannyBen)
- Improve shellcheck tests #22 (DannyBen)
v0.2.1 (2019-11-21)
Fixed bugs:
- Subcommand with short code and no args does not work #16
Merged pull requests:
v0.2.0 (2019-11-21)
Implemented enhancements:
- Add ability to generate extra includes #11
- Add ability to define examples and environment variable usage sections #10
- Run shellcheck on generated scripts #7
- Add ability to include custom shell scripts #6
- Make all hard coded strings configurable #5
Merged pull requests:
- Add config and colors libraries #15 (DannyBen)
- Add support for extra custom scripts #14 (DannyBen)
- Add support for examples and env vars usage text #13 (DannyBen)
- Custom strings + improvements round #12 (DannyBen)
v0.1.1 (2019-11-20)
Closed issues:
Merged pull requests: