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

Improve shell syntax documentation

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.1, 4.0.0.M3
    • karaf
    • None

    Description

      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 }
      1
      2
      3
      

      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

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

      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

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: