Generic Interactive Shell Framework
-----------------------------------

                 Key: BUILDR-234
                 URL: https://issues.apache.org/jira/browse/BUILDR-234
             Project: Buildr
          Issue Type: New Feature
          Components: Core features
            Reporter: Daniel Spiewak
             Fix For: 1.3.4


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:

# 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:

# buildr shell:jirb

Alternatively:

# 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

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to