Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
8287cc17
Commit
8287cc17
authored
Sep 24, 2011
by
Nick Stenning
Browse files
Better cake completion: don't barf on options, and don't clobber user's namespace
parent
762b55bb
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/cake/cake.plugin.zsh
View file @
8287cc17
# Set this to 1 if you want to cache the tasks
cache_task_list
=
1
_cake_
cache_task_list
=
1
# Cache filename
cache_file
=
'.cake_task_cache'
_cake_task_cache_file
=
'.cake_task_cache'
_cake_get_target_list
()
{
cake |
grep
'^cake '
|
sed
-e
"s/cake
\(
[^ ]*
\)
.*/
\1
/"
|
grep
-v
'^$'
}
_cake_does_target_list_need_generating
()
{
if
[
$cache_task_list
-eq
0
]
;
then
if
[
$
{
_cake_
cache_task_list
}
-eq
0
]
;
then
return
1
;
fi
if
[
!
-f
$cache_file
]
;
then return
0
;
if
[
!
-f
$
{
_cake_task_
cache_file
}
]
;
then return
0
;
else
accurate
=
$(
stat
-f
%m
$cache_file
)
accurate
=
$(
stat
-f
%m
$
_cake_task_
cache_file
)
changed
=
$(
stat
-f
%m Cakefile
)
return
$(
expr
$accurate
'>='
$changed
)
fi
...
...
@@ -21,12 +25,12 @@ _cake_does_target_list_need_generating () {
_cake
()
{
if
[
-f
Cakefile
]
;
then
if
_cake_does_target_list_need_generating
;
then
cake
|
sed
-e
"s/cake
\(
[^ ]*
\)
.*/
\1
/"
|
grep
-v
'^$'
>
$
cache_file
compadd
`
cat
$cache_file
`
_
cake
_get_target_list
>
${
_cake_task_
cache_file
}
compadd
`
cat
$
{
_cake_task_
cache_file
}
`
else
compadd
`
cake
|
sed
-e
"s/cake
\(
[^ ]*
\)
.*/
\1
/"
|
grep
-v
'^$'
`
compadd
`
_
cake
_get_target_list
`
fi
fi
}
compdef _cake cake
compdef _cake cake
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment