- Change
command.argfileto apply defaults instead of prepending the command line736ced8e - Allow disabling and overriding argfile with env var
ad82d59d - Compare
v1.3.7..v1.3.8
- Add support for evented file watcher
357dd255 - Update settings JSON schema with
watch_*options5aba9bef - Add
bold_underlinedto the color library0f90ca51 - Remove approvals.bash (
bashly add test)f4e8ea62 - Add support for command argfile
1086e984 - Add argfile example
5c36a85f - Compare
v1.3.6..v1.3.7
- Switch from
filewatchertolisten0b32b694 - Fix filewatcher interrupt
b3f84ae3 - Compare
v1.3.5..v1.3.6
- Move global variable declarations after environment variable declarations
cc5a29d8 - Add word_wrap option to settings
f6d6c7da - Compare
v1.3.4..v1.3.5
- Add support for captuing
--helpwhen usingcatch_all26d6f19c - Fix local variables leaking from internal functions
42cb20bb - Add
Settings.extra_lib_dirsto allow loading files from multiple locations27d4305d - Compare
v1.3.3..v1.3.4
- Add misisng validation for
env_var.validate55a3946d - Fix validation running twice for environment variables
4d7e6d68 - Add array syntax to
validate4b3f7410 - Add support for per-environment settings
522d2b89 - Compare
v1.3.2..v1.3.3
- Fix function name in root command comment
5775da6f - Compare
v1.3.1..v1.3.2
- Fix render markdown command examples
21b786d3 - Add
markdown_githubrender template754ca508 - Add ability to choose a different formatter (internal, none, shfmt)
efc01532 - Add ability to override raw input
8048e644 - Update bash version bouncer to require bash 4.2
3a3952ac - Add Command Line Manipulation example
388ab192 - Compare
v1.2.13..v1.3.1
- Fix premature exit in
validate_not_emptyvalidation functionb96ba359 - Add
stacktracestandard library03b78561 - Add examples/stacktrace
52073cc7 - Compare
v1.2.12..v1.2.13
- Drop support for Ruby 3.1
a735ee00 - Fix validations to only run once
a3075a02 - Add settings for internal function names
8fa881e2 - Compare
v1.2.11..v1.2.12
- Fix quoted heredocs
4b264646 - Compare
v1.2.10..v1.2.11
- Add
header_overridecommand optiond7a57e47 - Rename
header_overridetohelp_header_override2a8b5ded - Add example for
help_header_overrideaa00c751 - Update JSON schema with
help_header_override6677f4da - Update
bashly docwithcommand.help_header_override4e50fe17 - Compare
v1.2.9..v1.2.10
- Update colors library to support auto-colors based on TTY
a4bbae9a - Add
--quiettobashly addcommandca0a5468 - Update documentation domain to bashly.dev
d05605cb - Compare
v1.2.8..v1.2.9
- Add support for avoiding execution if the script is sourced
4d83222b - Revert 9167c49 to allow calling
run ...internallyd25c718f - Declare
versionandlong_usageas globals for consistency and clarity of intente9a9a76f - Move
long_usagedefinition frominitializetorun54beb86e - Add Internal Run example
4a1b2b9b - Add support for whalebrew
f33c663b - Compare
v1.2.7..v1.2.8
- Update version specifications for all dependencies
6bf0c4a0 - Add support for tweaking production/development output
c23d7053 - Fix shellcheck unused variable on
other_argsin productionf78c6e9a - Fix view markers for user files
cc3896ed - Update dependency check to show all missing dependencies at once
49251064 - Add support for declaring aliases for internal global variables
5264d511 - Move global var declarations from
run()toinitialize()9167c498 - Update settings JSON schema
b4e7e4dd - Add
buildas an alias tobashly generated64bc367 - Update default script header
c85276cd - Compare
v1.2.6..v1.2.7
- Fix array variables scope
ed7f2404 - Compare
v1.2.5..v1.2.6
- Move root variables from
run()toinitialize()f76c53b6 - Compare
v1.2.4..v1.2.5
- Add
command.variablesas a convenience utility for defining global command variables65388868 - Update JSON schema to include
command.variables28953fb5 - Refactor
command.variablesto a newVariableobject3e5a0606 - Add black and white to color library
0573e0f5 - Compare
v1.2.3..v1.2.4
- Fix docker image for multi-arch
5660a3e3 - Fix INI library when loading multiple files
6bfb1bc0 - Add sub dependencies to avoid Ruby 3.3.5 warnings
30b7318a - Fix
conflictsin fixed flags152069af - Compare
v1.2.2..v1.2.3
- Add support for needy flags:
flag.needsfadda94d - Add needy flag example
43e3b386 - Update JSON schemas
868650c6 - Update flag usage to show its conflicts and needs
db23575c - Refactor Command#introspection
a66db36f - Add support for environment variable validations
bccd3b02 - Update validations example to show environment variable validation
ee6a4c99 - Update script generation to allow bash variables in some YAML strings
6660d168 - Allow ad-hoc revealing of private commands, flags, and environment variables
d2876d72 - Add private-reveal example
8c940429 - Update completions library to consider private visibility setting
e16dde10 - Update mandoc/markdown library to consider private visibility setting
c49d94df - Compare
v1.2.1..v1.2.2
- Add validation to disallow required args before optional
f2d62764 - Fix shellcheck violations and reduce use of
eval41da133a - Fix default command not being triggered when only flags are provided
c6598300 - Fix prompt in bashly shell
de231e89 - Compare
v1.2.0..v1.2.1
- Fix usage string when there is a forced default command
d50607be - Add 'Global options' caption when appropriate
105a0f89 - Update descriptions in schemas/strings.json
6592666f - Remove redundant code in usage function
f87986a7 - Update default command usage to show optional brackets
854036d5 - Add
show_examples_on_errorsetting5e58388d - Add examples/command-examples-on-error
b30d2aa1 - Compare
v1.1.10..v1.2.0
- Sanitize percent signs in help messages
1f7e27c5 - Drop support for Ruby 3.0
865d6ac7 - Fix input normalization to ignore anything after the double dash (--) operator
621a1513 - Add
[--]to usage text whencatch_allis used1422bcf3 - Add
conjoined_flag_argsto allow disabling the--flag=argnormalizationd17756d2 - Compare
v1.1.9..v1.1.10
- Fix repeatable args when the input has quotes
0d35217b - Fix repeatable flag args when the input has quotes
ab34fc05 - Improve handling of unique repeatable args and flag args
c200223a - Update
Approvals.bashto v0.5.18e12d559 - Compare
v1.1.8..v1.1.9
- Update
approvals.bashto v0.5.0530cb05d - Add support for using heredoc
adf4837f - Compare
v1.1.7..v1.1.8
- Refactor validations to run after assigning default values
e45580cd - Upgrade
approvals.bashto 0.4.2863bf9a5 - Compare
v1.1.6..v1.1.7
- Docker: Fix missing pandoc
b8f6d2cf - Avoid rendering
inspect_args()when generating for production envdbb8816b - Update
approvals.bashlibrary to 0.4.19eee25ca - Update Dockerfile
45344972 - Build multi-arch docker image using GitHub Actions
5d169261 - Compare
v1.1.5..v1.1.6
- Allow
flag.defaultandarg.defaultto be an array ifrepeatableis true00c81ec1 - Improve JSON schema tests
6bd7a1b6 - Add YAML schema as a source to the bashly JSON schema
261d1040 - Add
allowedoption toenvironment_variable4d313a86 - Update
inspect_argsto also print managedenvironment_variables4fe17b71 - Refactor
inspect_argshandling of environment variables7c6e7124 - Compare
v1.1.4..v1.1.5
- Fix example in
bashly doc flag.arg039ab1cb - Add support for
uniquein repeatable flag argsb062c934 - Disallow multiple repeatable args, and a repeatable arg that is not the last one
25431c9e - Add support for
uniquein repeatable args4486788f - Compare
v1.1.3..v1.1.4
- Fix
bashly completeions --install9e5d45a0 - Compare
v1.1.2..v1.1.3
- Fix shfmt excess newlines violation when using
--env production0938fca1 - Fix some incompatibilities with strict mode
b24cddff - Compare
v1.1.1..v1.1.2
- Upgrade
approvals.bashlibrary to version 0.4.0a68ad34f - Update INI library to allow using environment variables in the INI values
2e3aec7f - Add support for custom "See Also" in mandoc renderer (
x_mandoc_see_also)4fddc7bf - Fix missing tmpdir library in
bashly add --source3f7b4c3a - Validate libraries.yml
a44cbde9 - Compare
v1.1.0..v1.1.1
- Add
bashly rendercommand4acc67bd - Add ability to render markdown documentation
7db61291 - Refactor module loading with autoload
62184f0f - Add
bashly add render_markdownlibraryd0fada7d - Add ability to render man pages and
bashly add render_mandoclibraryfe9607b4 - Refactor render command with RenderSource model
8629d266 - Allow arbitrary (
x-anything) values in bashly.yml90627833 - Refactor mandoc template to use x_mandoc_footer and x_mandoc_authors
b44b91f9 - Add render-mandoc man page generation example
98420de1 - Add
--showtobashly render2fcd790b - 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: