Uploaded image for project: 'Buildr (Retired)'
  1. Buildr (Retired)
  2. BUILDR-234

Generic Interactive Shell Framework

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.3.5
    • Core features
    • None

    Description

      It is often desirable to launch an interactive shell provided by some underlying language. For example, when using Buildr for Scala projects, I often use the `scala` interactive shell. On Groovy projects, it is extremely common to use `groovysh`. This can get tedious however because the CLASSPATH is entirely managed by Buildr. Launching these shells by hand requires either an extremely verbose invocation or an extra wrapper script which easily becomes outdated.

      A solution to this would be to add a core framework to Buildr which would allow multiple shell providers. The default would be that which corresponds to the project's language (if any). Thus, in a Scala project:

      1. buildr shell

      ...will launch `scala`; in a Groovy project, `groovysh` would be launched; and in a Java project the task would fail. It should also be possible to specify which shell is desired:

      1. buildr shell:jirb

      Alternatively:

      1. buildr shell[jirb]

      These shells should be launched with the CLASSPATH already set including all build artifacts as well as compiled classes. Thus, :shell => :compile. It is the opinion of this developer that the shell CLASSPATH should reflect that of the currently active project / sub-project (depending on CWD). An alternative design would have the CLASSPATH based solely on the outermost project regardless of CWD. See http://www.nabble.com/Interactive-Shell-Support-to21273331.html

      A preliminary implementation of this feature is available in the `interactive-shell` branch of this Git fork: http://github.com/djspiewak/buildr

      Attachments

        Activity

          People

            djspiewak Daniel Spiewak
            djspiewak Daniel Spiewak
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: