Commit Graph

110 Commits

Author SHA1 Message Date
Janne Valkealahti
a04091c08f Support modify option names
- New OptionNameModifier which is just a Function<String,String> to
  modify a name.
- Can be defined per option in CommandRegistration.
- Can be defined as global default as bean.
- Default implementation for common case types is enabled via boot's
  config props under spring.shell.option.naming.case-type
- Support facilities for camel, kebab, snake and pascal conversions.
- Fixes #621
2023-01-15 10:02:55 +00:00
Janne Valkealahti
95e2829dc3 Revisit positional arguments
- Add better mapping logic
- Add better type conversion
- More docs for arity and positional option configuration
- Fixes #616
2023-01-13 15:11:38 +00:00
Janne Valkealahti
f91b255bda Create BuilderSupplier interface
- Fixes #607
2023-01-08 13:38:33 +00:00
Janne Valkealahti
bf2692c70c Support exception handling with annotated methods
- New annotations ExceptionResolver and ExitCode
- New needed functionality is in classes ExceptionResolverMethodResolver
  and MethodCommandExceptionResolver.
- Hook these annotations with StandardMethodTargetRegistrar and Shell classes
- Fixes #597
2023-01-01 14:51:05 +00:00
Janne Valkealahti
b98cb4926d Fix typo
- Relates #579
2022-12-08 10:02:46 +00:00
Janne Valkealahti
83e906d2e7 Document writing to console
- Relates #579
2022-12-08 09:51:59 +00:00
Janne Valkealahti
e5570ae62c Add search algo docs
- Relates #579
2022-12-06 09:00:24 +00:00
Janne Valkealahti
74c04a4964 Polish getting started
- Relates #579
2022-12-05 13:59:37 +00:00
Janne Valkealahti
ef191e66f3 Add support for global help options
- Essentially this commit registeres on default `--help` and
  `-h` options to every command and execution short circuits
  in presense of help options to help command.
- Add Supplier<CommandRegistration.Builder> as a bean which
  can be autowired registration beans.
- Make this common bean customisable via CommandRegistrationCustomizer.
- Change StandardMethodTargetRegistrar to use supplier so that
  annotated commands gets common customizations.
- Change sample commands to use supplier.
- Add new group, spring.shell.help to config props.
- Docs changes
- Fixes #582
- Fixes #585
2022-12-04 17:23:25 +00:00
Janne Valkealahti
d3e897f6d9 Add base shell test system
- NOTE: very much wip and unstable
- This commit is a first step to provide boot style
  @ShellTest annotation
- New modules spring-shell-test and spring-shell-test-autoconfigure
- Focus is to autoconfigure context without shell runners so that
  we can create "sessions" and hook to configures jline terminal
  with custom in/out streams.
- Skeleton fork from jediterm to provide basic terminal emulation
  to part of a control amd escape characters working.
- ShellTestClient is a concept user can use to interact with a shell
  in a same way user would use a "real" shell.
- Fixes #489
2022-11-30 09:09:35 +00:00
Janne Valkealahti
452145264a Register option without prefix
- While option should be defined i.e. using "--arg", discover
  prefix from ShellMethod#prefix and use that if just "arg"
  is defined.
- Fixes #575
2022-11-26 15:08:07 +00:00
Janne Valkealahti
331df77ed8 More docs for option types
- Relates #558
2022-11-23 09:28:55 +00:00
Janne Valkealahti
ef7d97f2e1 Move built-in commands from components to commands
- Relates #558
2022-11-01 05:11:33 +00:00
Janne Valkealahti
2427ec36a1 Docs about logging
- Relates #558
2022-11-01 05:00:41 +00:00
Janne Valkealahti
c6e84dcfa8 Docs about debugging
- Just linking to wiki
- Relates #558
2022-10-31 07:41:01 +00:00
Janne Valkealahti
ff41b504a7 Docs about shell runners
- Relates #558
2022-10-31 05:35:34 +00:00
Janne Valkealahti
2a3856c101 Polish appendix naming
- Relates #558
2022-10-30 06:44:50 +00:00
Janne Valkealahti
a518414015 Registration section
- Move bean/anno sections here
- Relates #558
2022-10-30 05:43:44 +00:00
Janne Valkealahti
ea76e0d205 Change native build
- Align samples build with docs
- Relates #558
2022-10-22 06:45:02 +01:00
Janne Valkealahti
7866c9666d Base docs for PathSearch
- Relates #555
2022-10-19 08:12:12 +01:00
Janne Valkealahti
3021704c29 Support hidden commands
- CommandRegistration now has a structure to define
  it beind hidden
- Modify relevant parts to filter out hidden commands
- Essentially command is hidden from all other than
  command execution
- Sample in e2e tests
- Fixes #416
2022-10-18 14:51:44 +01:00
Janne Valkealahti
feba345f00 Component text can be truncated
- BaseComponentContext has new field terminalWidth.
- StringToStyleExpressionRenderer contains new format
  for "truncate-" prefixes and this is something
  what template can use to instruct max length based
  on terminal width.
- Change single/multi selectors to use this feature.
- Fixes #543
2022-10-14 17:16:51 +01:00
Janne Valkealahti
4c48017a97 Implement more flexible error handling
- Add exception handling around new interface CommandExceptionResolver
  which allows to define a chain of resolvers to process errors before
  exception is bubbled up to result handlers.
- Will be foundation to add more sophisticated error handling features
  compared to what spring itself have for rest layer.
- Resolver returns CommandHandlingResult holder which further can be
  used to make a choice what to print into console and if spesific exit
  code should be used in non-interactive mode.
- Exception handling can be defined globally and per command giving
  a change for user to customise i.e. error thrown by parser.
- CommandParserExceptionResolver replaces CommandParserExceptionsExceptionResultHandler
  and provides more meaninful message for missing options.
- Fixes #503
2022-10-14 10:55:05 +01:00
Janne Valkealahti
226b081c1c Upgrade native-build-tools 0.9.14
- Update docs
- Fixes #540
2022-10-03 09:20:49 +01:00
Janne Valkealahti
a1bd979548 Link to logging section
- Relates #527
2022-09-15 09:41:19 +01:00
Janne Valkealahti
f9de69347b Add graal build instructions
- Relates #527
2022-09-15 09:37:06 +01:00
Janne Valkealahti
0ef394c47e Add notes about logging
- Relates #527
2022-09-14 15:30:54 +01:00
Janne Valkealahti
15f03b358f Rework getting started section
- With build add feature to resolve dep versions which
  can be used in docs.
- More polished maven/gradle example.
- Relates #527
2022-09-14 09:09:25 +01:00
Selim Horri
46b2b54b1e Docs correctness!
Hi,
This is a simple careless mistake that i noticed when reading Spring Shell docs.
Simple but worth it! :)
Kindest,
2022-09-12 09:30:26 +01:00
Janne Valkealahti
f2009e2cb3 Move starter modules under starters
- Now all starters are kept under spring-shell-starters dir.
- Fixes #524
2022-09-08 13:12:12 +01:00
Janne Valkealahti
7c4700b7b5 Fix next handling in ComponentFlow
- This fixes a bug where returning null from a next()
  didn't stop a flow.
- Fixes #510
2022-08-22 16:30:08 +01:00
Janne Valkealahti
57b9259701 Split builtin command docs
- Fixes #504
2022-08-17 17:37:05 +01:00
Janne Valkealahti
c1c1da84db Remove maven build
- Relates #470
2022-08-16 12:48:04 +01:00
Janne Valkealahti
39c4519a3f Add gradle build files
- First set of changes for introduction of a gradle build.
- Relates #470
2022-08-16 10:30:15 +01:00
Janne Valkealahti
e193ca1d24 Upgrade to Boot 3.x
- For now port spring-native to framework config.
- 3rd party configs should go somewhere else.
- Fix changes from javax to jakarta.
- Change java settings as we now require jdk 17.
- Fixes #385
2022-07-24 08:07:14 +01:00
Janne Valkealahti
bff7a22b5e Next major development version 2022-07-23 15:57:21 +01:00
Janne Valkealahti
f826f29d77 Next development version 2022-07-23 15:15:17 +01:00
Janne Valkealahti
690d1d2e62 Add commands as list in help templating
- Add getNames method.
- Add docs for templating info and fields to help.
- Fixes #480
2022-07-21 21:24:41 +01:00
Drevsh
2862cc855e Add default selection to MultiItemSelector
- Added default selection to items
- Added correct styling for disabled but default selected item
- Added missing license header
- Added missing javadoc
- Added default selection to sample/doc code
2022-07-20 08:17:24 +01:00
Leszek Jasek
0edc9ada38 Fix typos in using-shell-options-optional.adoc 2022-07-14 19:18:50 +03:00
Janne Valkealahti
932e9d5d75 Update docs
- Completion docs
- Relates #433
2022-07-07 08:09:23 +01:00
Janne Valkealahti
03a02a0615 Flatten docs structure
- Essentially remove "Using Spring Shell" and move
  its content one level up.
- Fixes #433
2022-07-06 09:36:36 +01:00
Janne Valkealahti
8fc3ff9c6d Update docs
- Some new docs for theming.
- Relates #433
2022-07-04 09:47:39 +01:00
Janne Valkealahti
a019934169 Update docs
- Document option label
- Relates #433
2022-06-14 21:25:01 +01:00
Janne Valkealahti
088c4267b5 Update docs
- Polish getting started
- Relates #433
2022-06-14 21:07:17 +01:00
Janne Valkealahti
189794b0ef Update docs
- Remove and fix content with wrong links.
- Relates #433
2022-06-14 20:01:52 +01:00
Janne Valkealahti
3891a8b375 Add support for exit codes
- New configurations to CommandRegistration
- Re-using exit code concepts from boot
- Handling exit codes only in non-interactive mode
- Adding e2e commands and tests for better coverage
- Fixes #431
2022-05-31 07:49:50 +01:00
Jay Bryant
2af4e86925 Editing pass
for a bunch of new content to support the new version.
2022-05-28 08:27:36 +01:00
Janne Valkealahti
bd9ab62013 Rework help command
- Change help command output to get templated using
  model classes.
- Remove things around ParameterDescription as those are
  replaced with template classes.
- Fixes for native configs.
- For now availability and aliases are removed from
  help to get back in better form.
- Aliases has been partly introduced to structure.
- Fixes #422
2022-05-26 07:45:35 +01:00
Janne Valkealahti
eed1d84653 Update docs 2022-05-18 09:44:26 +01:00