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.