You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/03/17 14:31:41 UTC

[jira] [Commented] (TINKERPOP-1653) Allow multiple scripts with arguments to be passed to the Console

    [ https://issues.apache.org/jira/browse/TINKERPOP-1653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15930042#comment-15930042 ] 

ASF GitHub Bot commented on TINKERPOP-1653:
-------------------------------------------

GitHub user spmallette opened a pull request:

    https://github.com/apache/tinkerpop/pull/576

    TINKERPOP-1653 Allow multiple scripts to be passed to gremlin.sh

    https://issues.apache.org/jira/browse/TINKERPOP-1653
    
    This is a non-breaking change and simply allows multiple `-i` and `-e` options on gremlin.sh. The old method for passing a single script name to gremlin.sh remains intact as well. Had to write a custom parser for the command line arguments to do this because it doesn't appear that `CliBuilder` is capable of parsing the in the manner necessary to support this feature unfortunately.
    
    Here's some example usage given these three scripts:
    
    ```text
    $ more *.groovy
    ::::::::::::::
    x.groovy
    ::::::::::::::
    x = 1 + 1
    ::::::::::::::
    y.groovy
    ::::::::::::::
    y = args.collect{Integer.parseInt(it)}.sum()
    ::::::::::::::
    z.groovy
    ::::::::::::::
    z = "argument=" + args
    ```
    
    This is old, now deprecated, method that is still supported:
    
    ```
    $ bin/gremlin.sh x.groovy 
    
             \,,,/
             (o o)
    -----oOOo-(3)-oOOo-----
    plugin activated: tinkerpop.server
    plugin activated: tinkerpop.utilities
    plugin activated: tinkerpop.tinkergraph
    gremlin> x
    ==>2
    ```
    
    Next with `-i` as usual:
    
    ```text
    $ bin/gremlin.sh -i x.groovy
    
             \,,,/
             (o o)
    -----oOOo-(3)-oOOo-----
    plugin activated: tinkerpop.server
    plugin activated: tinkerpop.utilities
    plugin activated: tinkerpop.tinkergraph
    gremlin> x
    ==>2
    ```
    
    then with arguments:
    
    ```text
    $ bin/gremlin.sh -i y.groovy 1 2 3
    
             \,,,/
             (o o)
    -----oOOo-(3)-oOOo-----
    plugin activated: tinkerpop.server
    plugin activated: tinkerpop.utilities
    plugin activated: tinkerpop.tinkergraph
    gremlin> y
    ==>6
    ```
    
    Next with multiple scripts:
    
    ```text
    $ bin/gremlin.sh -i y.groovy 1 2 3 -i x.groovy
    
             \,,,/
             (o o)
    -----oOOo-(3)-oOOo-----
    plugin activated: tinkerpop.server
    plugin activated: tinkerpop.utilities
    plugin activated: tinkerpop.tinkergraph
    gremlin> y
    ==>6
    gremlin> x
    ==>2
    ```
    
    Then with multiple scripts with other `gremlin.sh` options mixed in
    
    ```text
    $ bin/gremlin.sh -i y.groovy 1 2 3 --color -i x.groovy -i "z.groovy x -i --color -D"
    
             \,,,/
             (o o)
    -----oOOo-(3)-oOOo-----
    plugin activated: tinkerpop.server
    plugin activated: tinkerpop.utilities
    plugin activated: tinkerpop.tinkergraph
    gremlin> x
    ==>2
    gremlin> y
    ==>6
    gremlin> z
    ==>argument=[x, -i, --color, -D]
    ```
    
    Finally, note that you still can't mix/match `-i` and `-e` commands - `CliBuilder` still rejects bad stuff like that:
    
    ```text
    $ bin/gremlin.sh -i y.groovy 1 2 3 --color -i x.groovy -e "z.groovy x -i --color -D"
    -i and -e options are mutually exclusive - provide one or the other
    ```
    
    VOTE +1

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/tinkerpop TINKERPOP-1653

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/tinkerpop/pull/576.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #576
    
----
commit 1503311f030291745276805188e61b525576d604
Author: Stephen Mallette <sp...@genoprime.com>
Date:   2017-03-17T14:23:34Z

    TINKERPOP-1653 Allow multiple scripts to be passed to gremlin.sh
    
    This is a non-breaking change and simply allows multiple -i and -e options on gremlin.sh. The old method for passing a single script name to gremlin.sh remains intact as well. Had to write a custom parser for the command line arguments to do this because it doesn't appear that CliBuilder is capable of parsing the in the manner necessary to support this feature unfortunately.

----


> Allow multiple scripts with arguments to be passed to the Console
> -----------------------------------------------------------------
>
>                 Key: TINKERPOP-1653
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1653
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: console
>    Affects Versions: 3.2.4
>            Reporter: stephen mallette
>            Assignee: stephen mallette
>
> Gremlin Console currently supports {{-e}} and {{-i}} for passing in scripts to execute from the command line, but it is only possible to pass one script with either command. It would be helpful to allow multiple scripts with associated arguments for each as it would provide greater flexibility when doing automation through the console.
> {code}
> bin/gremlin.sh -i scripts/x.groovy -i scripts/y.groovy 123 test -D -i "scripts/z.groovy -D -i -e"
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)