Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-2301

Improve shell syntax documentation


    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.0.1, 4.0.0.M3
    • Component/s: karaf-documentation
    • Labels:


      It would be nice if there were more examples within the karaf documentation for using the shell language.

      This documentation should be available within the 'help' command too if possible

      For instance, there is currently no example of how the 'each' command works.

      karaf@root> list = [1 2 3]; each ($list) { echo $it }

      There is no mention of whether there support for returning/breaking early in the each command either. After checking the source it doesn't appear to be possible, but it would be nice to mention such a thing.

      It would also be nice to show that the '[]' notation used will actually create an instance of java ArrayList, and as such you can perform 'get' on it to access values

      karaf@root> list = ["Hello" world]; echo ($list get 0) ($list get 1)
      Hello world

      And that you can actually see the class implementation details with '[] class'

      It would be nice to show if there is a way to access primitive array types too. And if this isn't possible, it might be nice to add that information

      karaf@root> ("hello world" toCharArray)[0]
      Error executing command: [C cannot be cast to [Ljava.lang.Object;

      It would nice to stress the importance of spaces in the shell language too, as I imagine that would be a very common gotcha

      ie happy path if statement working as expected

      foo = "foo"
      if { $foo equals "foo" } {
        echo "True!"
      karaf@root> shell:source script.txt

      But without a space between the 'if' ie

      if{ $foo equals "foo" } {'

      Then you get the following error, and it's very hard to tell what has gone wrong

      karaf@root> shell:source script.txt
      Error executing command: Cannot coerce echo "true!"() to any of []

      I am happy to help with this documentation update, as I've currently got a small amount of knowledge on the subject




            • Assignee:
              jbonofre Jean-Baptiste Onofré
              alanfoster Alan Foster
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created: