##// END OF EJS Templates
replace $() with backticks...
Julian Taylor -
Show More
@@ -1,106 +1,106 b''
1 # load with: . ipython-completion.bash
1 # load with: . ipython-completion.bash
2
2
3 _ipython_get_flags()
3 _ipython_get_flags()
4 {
4 {
5 local url=$1
5 local url=$1
6 local var=$2
6 local var=$2
7 local dash=$3
7 local dash=$3
8 if [[ "$url $var" == $__ipython_complete_last ]]; then
8 if [[ "$url $var" == $__ipython_complete_last ]]; then
9 opts=$__ipython_complete_last_res
9 opts=$__ipython_complete_last_res
10 return
10 return
11 fi
11 fi
12 # pylab and profile don't need the = and the
12 # pylab and profile don't need the = and the
13 # version without simplifies the special cased completion
13 # version without simplifies the special cased completion
14 opts=$(ipython ${url} --help-all | grep -E "^-{1,2}[^-]" | sed -e "s/<.*//" -e "s/[^=]$/& /" -e "s/^--pylab=$//" -e "s/^--profile=$/--profile /")
14 opts=$(ipython ${url} --help-all | grep -E "^-{1,2}[^-]" | sed -e "s/<.*//" -e "s/[^=]$/& /" -e "s/^--pylab=$//" -e "s/^--profile=$/--profile /")
15 __ipython_complete_last="$url $var"
15 __ipython_complete_last="$url $var"
16 __ipython_complete_last_res="$opts"
16 __ipython_complete_last_res="$opts"
17 }
17 }
18
18
19 _ipython()
19 _ipython()
20 {
20 {
21 local cur=${COMP_WORDS[COMP_CWORD]}
21 local cur=${COMP_WORDS[COMP_CWORD]}
22 local prev=${COMP_WORDS[COMP_CWORD - 1]}
22 local prev=${COMP_WORDS[COMP_CWORD - 1]}
23 local subcommands="notebook qtconsole console kernel profile locate"
23 local subcommands="notebook qtconsole console kernel profile locate"
24 local opts=""
24 local opts=""
25 if [ -z "$__ipython_complete_baseopts" ]; then
25 if [ -z "$__ipython_complete_baseopts" ]; then
26 _ipython_get_flags baseopts
26 _ipython_get_flags baseopts
27 __ipython_complete_baseopts="${opts}"
27 __ipython_complete_baseopts="${opts}"
28 fi
28 fi
29 local baseopts="$__ipython_complete_baseopts"
29 local baseopts="$__ipython_complete_baseopts"
30 local mode=""
30 local mode=""
31 for i in "${COMP_WORDS[@]}"; do
31 for i in "${COMP_WORDS[@]}"; do
32 [ "$cur" = "$i" ] && break
32 [ "$cur" = "$i" ] && break
33 if [[ ${subcommands} == *${i}* ]]; then
33 if [[ ${subcommands} == *${i}* ]]; then
34 mode="$i"
34 mode="$i"
35 break
35 break
36 elif [[ ${i} == "--"* ]]; then
36 elif [[ ${i} == "--"* ]]; then
37 mode="nosubcommand"
37 mode="nosubcommand"
38 break
38 break
39 fi
39 fi
40 done
40 done
41
41
42 if [[ $mode == "profile" ]]; then
42 if [[ $mode == "profile" ]]; then
43 opts="list create"
43 opts="list create"
44 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
44 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
45 elif [[ ${cur} == -* ]]; then
45 elif [[ ${cur} == -* ]]; then
46 if [[ $mode == "notebook" ]]; then
46 if [[ $mode == "notebook" ]]; then
47 _ipython_get_flags notebook
47 _ipython_get_flags notebook
48 opts=$"${opts} ${baseopts}"
48 opts=$"${opts} ${baseopts}"
49 elif [[ $mode == "qtconsole" ]]; then
49 elif [[ $mode == "qtconsole" ]]; then
50 _ipython_get_flags qtconsole
50 _ipython_get_flags qtconsole
51 opts="${opts} ${baseopts}"
51 opts="${opts} ${baseopts}"
52 elif [[ $mode == "console" ]]; then
52 elif [[ $mode == "console" ]]; then
53 _ipython_get_flags console
53 _ipython_get_flags console
54 elif [[ $mode == "kernel" ]]; then
54 elif [[ $mode == "kernel" ]]; then
55 _ipython_get_flags kernel
55 _ipython_get_flags kernel
56 opts="${opts} ${baseopts}"
56 opts="${opts} ${baseopts}"
57 elif [[ $mode == "locate" ]]; then
57 elif [[ $mode == "locate" ]]; then
58 opts=""
58 opts=""
59 else
59 else
60 opts=$baseopts
60 opts=$baseopts
61 fi
61 fi
62 # don't drop the trailing space
62 # don't drop the trailing space
63 local IFS=$'\t\n'
63 local IFS=$'\t\n'
64 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
64 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
65 return 0
65 return 0
66 elif [[ ${prev} == "--pylab"* ]] || [[ ${prev} == "--gui"* ]]; then
66 elif [[ ${prev} == "--pylab"* ]] || [[ ${prev} == "--gui"* ]]; then
67 if [ -z "$__ipython_complete_pylab" ]; then
67 if [ -z "$__ipython_complete_pylab" ]; then
68 __ipython_complete_pylab=$(cat <<EOF | python -
68 __ipython_complete_pylab=`cat <<EOF | python -
69 try:
69 try:
70 import IPython.core.shellapp as mod;
70 import IPython.core.shellapp as mod;
71 for k in mod.InteractiveShellApp.pylab.values:
71 for k in mod.InteractiveShellApp.pylab.values:
72 print "%s " % k
72 print "%s " % k
73 except:
73 except:
74 pass
74 pass
75 EOF
75 EOF
76 )
76 `
77 fi
77 fi
78 local IFS=$'\t\n'
78 local IFS=$'\t\n'
79 COMPREPLY=( $(compgen -W "${__ipython_complete_pylab}" -- ${cur}) )
79 COMPREPLY=( $(compgen -W "${__ipython_complete_pylab}" -- ${cur}) )
80 elif [[ ${prev} == "--profile"* ]]; then
80 elif [[ ${prev} == "--profile"* ]]; then
81 if [ -z "$__ipython_complete_profiles" ]; then
81 if [ -z "$__ipython_complete_profiles" ]; then
82 __ipython_complete_profiles=$(cat <<EOF | python -
82 __ipython_complete_profiles=`cat <<EOF | python -
83 try:
83 try:
84 import IPython.core.profileapp
84 import IPython.core.profileapp
85 for k in IPython.core.profileapp.list_bundled_profiles():
85 for k in IPython.core.profileapp.list_bundled_profiles():
86 print "%s " % k
86 print "%s " % k
87 p = IPython.core.profileapp.ProfileList()
87 p = IPython.core.profileapp.ProfileList()
88 for k in IPython.core.profileapp.list_profiles_in(p.ipython_dir):
88 for k in IPython.core.profileapp.list_profiles_in(p.ipython_dir):
89 print "%s " % k
89 print "%s " % k
90 except:
90 except:
91 pass
91 pass
92 EOF
92 EOF
93 )
93 `
94 fi
94 fi
95 local IFS=$'\t\n'
95 local IFS=$'\t\n'
96 COMPREPLY=( $(compgen -W "${__ipython_complete_profiles}" -- ${cur}) )
96 COMPREPLY=( $(compgen -W "${__ipython_complete_profiles}" -- ${cur}) )
97 else
97 else
98 if [ -z "$mode" ]; then
98 if [ -z "$mode" ]; then
99 COMPREPLY=( $(compgen -f -W "${subcommands}" -- ${cur}) )
99 COMPREPLY=( $(compgen -f -W "${subcommands}" -- ${cur}) )
100 else
100 else
101 COMPREPLY=( $(compgen -f -- ${cur}) )
101 COMPREPLY=( $(compgen -f -- ${cur}) )
102 fi
102 fi
103 fi
103 fi
104
104
105 }
105 }
106 complete -o default -o nospace -F _ipython ipython
106 complete -o default -o nospace -F _ipython ipython
General Comments 0
You need to be logged in to leave comments. Login now