You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nutch.apache.org by "Jim (JIRA)" <ji...@apache.org> on 2008/08/28 02:25:44 UTC

[jira] Created: (NUTCH-648) debian style autocomplete

debian style autocomplete
-------------------------

                 Key: NUTCH-648
                 URL: https://issues.apache.org/jira/browse/NUTCH-648
             Project: Nutch
          Issue Type: Improvement
         Environment: debian, and other linux
            Reporter: Jim



        Here is a suggested improvement:  At the end of this file is a debian style bash autocomplete script, just place into /etc/bash_complete.d/ with filename nutch, and you can tab complete at the command prompt, ie

bash> nutch [tab][tab]

   crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse
   readseg mergesegs updatedb invertlinks mergelinkdb index merge dedup plugin server

bash> nutch c[tab][tab]

   crawl convdb

etc.

   This also includes optional parameters, and filename completion where it can be used.  I really like having this when typing in long nutch commands, and think it would be a great addition to the project.

   The file is heavily taken from the corresponding svn file that does the same thing.

File begins here:



shopt -s extglob

_nutch()
{
       local cur cmds cmdOpts optsParam opt
       local i

       COMPREPLY=()
       cur=${COMP_WORDS[COMP_CWORD]}

       # Possible expansions
       cmds='crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse readseg mergesegs updatedb invertlinks \
mergelinkdb index merge dedup plugin server'

       if [[ $COMP_CWORD -eq 1 ]] ; then
               COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
               return 0
       fi

       # options that require a parameter
       # This needs to be filled in better
       optsParam="-topN|-depth"


       # if not typing an option, or if the previous option required a
       # parameter, then fallback on ordinary filename expansion
       if [[ "$cur" != -* ]] || \
          [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then
               return 0
       fi

       # possible options for the command
       cmdOpts=
       case ${COMP_WORDS[1]} in
       crawl)
               cmdOpts="-dir -threads -depth -topN"
               ;;
       readdb)
               cmdOpts="-stats -dump -topN -url"
               ;;
       convdb)
               cmdOpts="-withMetadata"
               ;;
       mergedb)
               cmdOpts="-normalize -filter"
               ;;
       readlinkdb)
               cmdOpts="-dump -url"
               ;;
       inject)
               cmdOpts=""
               ;;
       generate)
               cmdOpts="-force -topN -numFetchers -adddays -noFilter"
               ;;
       freegen)
               cmdOpts="-filter -normalize"
               ;;
       fetch)
               cmdOpts="-threads -noParsing"
               ;;
       fetch2)
               cmdOpts="-threads -noParsing"
               ;;
       parse)
               cmdOpts=""
               ;;
       readseg)
               cmdOpts="-dump -list -get -nocontent -nofetch -nogenerate -noparse -noparsedata -noparsetext -dir"
               ;;
       mergesegs)
               cmdOpts="-dir -filter -slice"
               ;;
       updatedb)
               cmdOpts="-dir -force -normalize -filter -noAdditions"
               ;;
       invertlinks)
               cmdOpts="-dir -force -noNormalize -noFilter"
               ;;
       mergelinkdb)
               cmdOpts="-normalize -filter"
               ;;
       index)
               cmdOpts=""
               ;;
       merge)
               cmdOpts="-workingdir"
               ;;
       dedup)
               cmdOpts=""
               ;;
       plugin)
               cmdOpts=""
               ;;
       server)
               cmdOpts=""
               ;;
       *)
               ;;
       esac

       # take out options already given
       for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do
               opt=${COMP_WORDS[$i]}

               cmdOpts=" $cmdOpts "
               cmdOpts=${cmdOpts/ ${opt} / }

               # skip next option if this one requires a parameter
               if [[ $opt == @($optsParam) ]] ; then
                       ((++i))
               fi
       done

       COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) )

       return 0
}
complete -F _nutch -o default nutch

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


[jira] Updated: (NUTCH-648) debian style autocomplete

Posted by "Andrzej Bialecki (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/NUTCH-648?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrzej Bialecki  updated NUTCH-648:
------------------------------------

    Priority: Minor  (was: Major)

> debian style autocomplete
> -------------------------
>
>                 Key: NUTCH-648
>                 URL: https://issues.apache.org/jira/browse/NUTCH-648
>             Project: Nutch
>          Issue Type: Improvement
>         Environment: debian, and other linux
>            Reporter: Jim
>            Priority: Minor
>
>         Here is a suggested improvement:  At the end of this file is a debian style bash autocomplete script, just place into /etc/bash_complete.d/ with filename nutch, and you can tab complete at the command prompt, ie
> bash> nutch [tab][tab]
>    crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse
>    readseg mergesegs updatedb invertlinks mergelinkdb index merge dedup plugin server
> bash> nutch c[tab][tab]
>    crawl convdb
> etc.
>    This also includes optional parameters, and filename completion where it can be used.  I really like having this when typing in long nutch commands, and think it would be a great addition to the project.
>    The file is heavily taken from the corresponding svn file that does the same thing.
> File begins here:
> shopt -s extglob
> _nutch()
> {
>        local cur cmds cmdOpts optsParam opt
>        local i
>        COMPREPLY=()
>        cur=${COMP_WORDS[COMP_CWORD]}
>        # Possible expansions
>        cmds='crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse readseg mergesegs updatedb invertlinks \
> mergelinkdb index merge dedup plugin server'
>        if [[ $COMP_CWORD -eq 1 ]] ; then
>                COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
>                return 0
>        fi
>        # options that require a parameter
>        # This needs to be filled in better
>        optsParam="-topN|-depth"
>        # if not typing an option, or if the previous option required a
>        # parameter, then fallback on ordinary filename expansion
>        if [[ "$cur" != -* ]] || \
>           [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then
>                return 0
>        fi
>        # possible options for the command
>        cmdOpts=
>        case ${COMP_WORDS[1]} in
>        crawl)
>                cmdOpts="-dir -threads -depth -topN"
>                ;;
>        readdb)
>                cmdOpts="-stats -dump -topN -url"
>                ;;
>        convdb)
>                cmdOpts="-withMetadata"
>                ;;
>        mergedb)
>                cmdOpts="-normalize -filter"
>                ;;
>        readlinkdb)
>                cmdOpts="-dump -url"
>                ;;
>        inject)
>                cmdOpts=""
>                ;;
>        generate)
>                cmdOpts="-force -topN -numFetchers -adddays -noFilter"
>                ;;
>        freegen)
>                cmdOpts="-filter -normalize"
>                ;;
>        fetch)
>                cmdOpts="-threads -noParsing"
>                ;;
>        fetch2)
>                cmdOpts="-threads -noParsing"
>                ;;
>        parse)
>                cmdOpts=""
>                ;;
>        readseg)
>                cmdOpts="-dump -list -get -nocontent -nofetch -nogenerate -noparse -noparsedata -noparsetext -dir"
>                ;;
>        mergesegs)
>                cmdOpts="-dir -filter -slice"
>                ;;
>        updatedb)
>                cmdOpts="-dir -force -normalize -filter -noAdditions"
>                ;;
>        invertlinks)
>                cmdOpts="-dir -force -noNormalize -noFilter"
>                ;;
>        mergelinkdb)
>                cmdOpts="-normalize -filter"
>                ;;
>        index)
>                cmdOpts=""
>                ;;
>        merge)
>                cmdOpts="-workingdir"
>                ;;
>        dedup)
>                cmdOpts=""
>                ;;
>        plugin)
>                cmdOpts=""
>                ;;
>        server)
>                cmdOpts=""
>                ;;
>        *)
>                ;;
>        esac
>        # take out options already given
>        for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do
>                opt=${COMP_WORDS[$i]}
>                cmdOpts=" $cmdOpts "
>                cmdOpts=${cmdOpts/ ${opt} / }
>                # skip next option if this one requires a parameter
>                if [[ $opt == @($optsParam) ]] ; then
>                        ((++i))
>                fi
>        done
>        COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) )
>        return 0
> }
> complete -F _nutch -o default nutch

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


[jira] Commented: (NUTCH-648) debian style autocomplete

Posted by "Doğacan Güney (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/NUTCH-648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12635990#action_12635990 ] 

Doğacan Güney commented on NUTCH-648:
-------------------------------------

This looks great but can you attach your changes as a patch?

> debian style autocomplete
> -------------------------
>
>                 Key: NUTCH-648
>                 URL: https://issues.apache.org/jira/browse/NUTCH-648
>             Project: Nutch
>          Issue Type: Improvement
>         Environment: debian, and other linux
>            Reporter: Jim
>
>         Here is a suggested improvement:  At the end of this file is a debian style bash autocomplete script, just place into /etc/bash_complete.d/ with filename nutch, and you can tab complete at the command prompt, ie
> bash> nutch [tab][tab]
>    crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse
>    readseg mergesegs updatedb invertlinks mergelinkdb index merge dedup plugin server
> bash> nutch c[tab][tab]
>    crawl convdb
> etc.
>    This also includes optional parameters, and filename completion where it can be used.  I really like having this when typing in long nutch commands, and think it would be a great addition to the project.
>    The file is heavily taken from the corresponding svn file that does the same thing.
> File begins here:
> shopt -s extglob
> _nutch()
> {
>        local cur cmds cmdOpts optsParam opt
>        local i
>        COMPREPLY=()
>        cur=${COMP_WORDS[COMP_CWORD]}
>        # Possible expansions
>        cmds='crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse readseg mergesegs updatedb invertlinks \
> mergelinkdb index merge dedup plugin server'
>        if [[ $COMP_CWORD -eq 1 ]] ; then
>                COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
>                return 0
>        fi
>        # options that require a parameter
>        # This needs to be filled in better
>        optsParam="-topN|-depth"
>        # if not typing an option, or if the previous option required a
>        # parameter, then fallback on ordinary filename expansion
>        if [[ "$cur" != -* ]] || \
>           [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then
>                return 0
>        fi
>        # possible options for the command
>        cmdOpts=
>        case ${COMP_WORDS[1]} in
>        crawl)
>                cmdOpts="-dir -threads -depth -topN"
>                ;;
>        readdb)
>                cmdOpts="-stats -dump -topN -url"
>                ;;
>        convdb)
>                cmdOpts="-withMetadata"
>                ;;
>        mergedb)
>                cmdOpts="-normalize -filter"
>                ;;
>        readlinkdb)
>                cmdOpts="-dump -url"
>                ;;
>        inject)
>                cmdOpts=""
>                ;;
>        generate)
>                cmdOpts="-force -topN -numFetchers -adddays -noFilter"
>                ;;
>        freegen)
>                cmdOpts="-filter -normalize"
>                ;;
>        fetch)
>                cmdOpts="-threads -noParsing"
>                ;;
>        fetch2)
>                cmdOpts="-threads -noParsing"
>                ;;
>        parse)
>                cmdOpts=""
>                ;;
>        readseg)
>                cmdOpts="-dump -list -get -nocontent -nofetch -nogenerate -noparse -noparsedata -noparsetext -dir"
>                ;;
>        mergesegs)
>                cmdOpts="-dir -filter -slice"
>                ;;
>        updatedb)
>                cmdOpts="-dir -force -normalize -filter -noAdditions"
>                ;;
>        invertlinks)
>                cmdOpts="-dir -force -noNormalize -noFilter"
>                ;;
>        mergelinkdb)
>                cmdOpts="-normalize -filter"
>                ;;
>        index)
>                cmdOpts=""
>                ;;
>        merge)
>                cmdOpts="-workingdir"
>                ;;
>        dedup)
>                cmdOpts=""
>                ;;
>        plugin)
>                cmdOpts=""
>                ;;
>        server)
>                cmdOpts=""
>                ;;
>        *)
>                ;;
>        esac
>        # take out options already given
>        for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do
>                opt=${COMP_WORDS[$i]}
>                cmdOpts=" $cmdOpts "
>                cmdOpts=${cmdOpts/ ${opt} / }
>                # skip next option if this one requires a parameter
>                if [[ $opt == @($optsParam) ]] ; then
>                        ((++i))
>                fi
>        done
>        COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) )
>        return 0
> }
> complete -F _nutch -o default nutch

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


[jira] Commented: (NUTCH-648) debian style autocomplete

Posted by "Andrzej Bialecki (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/NUTCH-648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659342#action_12659342 ] 

Andrzej Bialecki  commented on NUTCH-648:
-----------------------------------------

I'm not convinced about the usefulness of this change. It adds complexity to the bash script, and requires that we keep two lists of options in sync.

> debian style autocomplete
> -------------------------
>
>                 Key: NUTCH-648
>                 URL: https://issues.apache.org/jira/browse/NUTCH-648
>             Project: Nutch
>          Issue Type: Improvement
>         Environment: debian, and other linux
>            Reporter: Jim
>            Priority: Minor
>
>         Here is a suggested improvement:  At the end of this file is a debian style bash autocomplete script, just place into /etc/bash_complete.d/ with filename nutch, and you can tab complete at the command prompt, ie
> bash> nutch [tab][tab]
>    crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse
>    readseg mergesegs updatedb invertlinks mergelinkdb index merge dedup plugin server
> bash> nutch c[tab][tab]
>    crawl convdb
> etc.
>    This also includes optional parameters, and filename completion where it can be used.  I really like having this when typing in long nutch commands, and think it would be a great addition to the project.
>    The file is heavily taken from the corresponding svn file that does the same thing.
> File begins here:
> shopt -s extglob
> _nutch()
> {
>        local cur cmds cmdOpts optsParam opt
>        local i
>        COMPREPLY=()
>        cur=${COMP_WORDS[COMP_CWORD]}
>        # Possible expansions
>        cmds='crawl readdb convdb mergedb readlinkdb inject generate freegen fetch fetch2 parse readseg mergesegs updatedb invertlinks \
> mergelinkdb index merge dedup plugin server'
>        if [[ $COMP_CWORD -eq 1 ]] ; then
>                COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
>                return 0
>        fi
>        # options that require a parameter
>        # This needs to be filled in better
>        optsParam="-topN|-depth"
>        # if not typing an option, or if the previous option required a
>        # parameter, then fallback on ordinary filename expansion
>        if [[ "$cur" != -* ]] || \
>           [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then
>                return 0
>        fi
>        # possible options for the command
>        cmdOpts=
>        case ${COMP_WORDS[1]} in
>        crawl)
>                cmdOpts="-dir -threads -depth -topN"
>                ;;
>        readdb)
>                cmdOpts="-stats -dump -topN -url"
>                ;;
>        convdb)
>                cmdOpts="-withMetadata"
>                ;;
>        mergedb)
>                cmdOpts="-normalize -filter"
>                ;;
>        readlinkdb)
>                cmdOpts="-dump -url"
>                ;;
>        inject)
>                cmdOpts=""
>                ;;
>        generate)
>                cmdOpts="-force -topN -numFetchers -adddays -noFilter"
>                ;;
>        freegen)
>                cmdOpts="-filter -normalize"
>                ;;
>        fetch)
>                cmdOpts="-threads -noParsing"
>                ;;
>        fetch2)
>                cmdOpts="-threads -noParsing"
>                ;;
>        parse)
>                cmdOpts=""
>                ;;
>        readseg)
>                cmdOpts="-dump -list -get -nocontent -nofetch -nogenerate -noparse -noparsedata -noparsetext -dir"
>                ;;
>        mergesegs)
>                cmdOpts="-dir -filter -slice"
>                ;;
>        updatedb)
>                cmdOpts="-dir -force -normalize -filter -noAdditions"
>                ;;
>        invertlinks)
>                cmdOpts="-dir -force -noNormalize -noFilter"
>                ;;
>        mergelinkdb)
>                cmdOpts="-normalize -filter"
>                ;;
>        index)
>                cmdOpts=""
>                ;;
>        merge)
>                cmdOpts="-workingdir"
>                ;;
>        dedup)
>                cmdOpts=""
>                ;;
>        plugin)
>                cmdOpts=""
>                ;;
>        server)
>                cmdOpts=""
>                ;;
>        *)
>                ;;
>        esac
>        # take out options already given
>        for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do
>                opt=${COMP_WORDS[$i]}
>                cmdOpts=" $cmdOpts "
>                cmdOpts=${cmdOpts/ ${opt} / }
>                # skip next option if this one requires a parameter
>                if [[ $opt == @($optsParam) ]] ; then
>                        ((++i))
>                fi
>        done
>        COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) )
>        return 0
> }
> complete -F _nutch -o default nutch

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