Merge pull request #1655 from nubs/phing-and-cache-files

Improve portability of cache file detection for command targets
This commit is contained in:
Robby Russell 2013-04-07 19:05:59 -07:00
commit dda1154c80
4 changed files with 14 additions and 43 deletions

View File

@ -1,17 +1,7 @@
stat -f%m . > /dev/null 2>&1
if [ "$?" = 0 ]; then
stat_cmd=(stat -f%m)
else
stat_cmd=(stat -L --format=%Y)
fi
_ant_does_target_list_need_generating () {
if [ ! -f .ant_targets ]; then return 0;
else
accurate=$($stat_cmd .ant_targets)
changed=$($stat_cmd build.xml)
return $(expr $accurate '>=' $changed)
fi
[ ! -f .ant_targets ] && return 0;
[ .ant_targets -nt build.xml ] && return 0;
return 1;
}
_ant () {

View File

@ -14,12 +14,9 @@ _cake_does_target_list_need_generating () {
return 1;
fi
if [ ! -f ${_cake_task_cache_file} ]; then return 0;
else
accurate=$(stat -f%m $_cake_task_cache_file)
changed=$(stat -f%m Cakefile)
return $(expr $accurate '>=' $changed)
fi
[ ! -f ${_cake_task_cache_file} ] && return 0;
[ ${_cake_task_cache_file} -nt Cakefile ] && return 0;
return 1;
}
_cake () {
@ -33,4 +30,4 @@ _cake () {
fi
}
compdef _cake cake
compdef _cake cake

View File

@ -54,27 +54,14 @@ function in_gradle() {
fi
}
############################################################################
# Define the stat_cmd command based on platform behavior
##########################################################################
stat -f%m . > /dev/null 2>&1
if [ "$?" = 0 ]; then
stat_cmd=(stat -f%m)
else
stat_cmd=(stat -L --format=%Y)
fi
############################################################################## Examine the build.gradle file to see if its
# timestamp has changed, and if so, regen
# the .gradle_tasks cache file
############################################################################
_gradle_does_task_list_need_generating () {
if [ ! -f .gradletasknamecache ]; then return 0;
else
accurate=$($stat_cmd .gradletasknamecache)
changed=$($stat_cmd build.gradle)
return $(expr $accurate '>=' $changed)
fi
[ ! -f .gradletasknamecache ] && return 0;
[ .gradletasknamecache -nt build.gradle ] && return 0;
return 1;
}

View File

@ -1,16 +1,13 @@
_phing_does_target_list_need_generating () {
if [ ! -f .phing_targets ]; then return 0;
else
accurate=$(stat -f%m .phing_targets)
changed=$(stat -f%m build.xml)
return $(expr $accurate '>=' $changed)
fi
[ ! -f .phing_targets ] && return 0;
[ .phing_targets -nt build.xml ] && return 0;
return 1;
}
_phing () {
if [ -f build.xml ]; then
if _phing_does_target_list_need_generating; then
phing -l |grep -v ":" |grep -v "^$"|grep -v "\-" > .phing_targets
phing -l |grep -v ":$" |grep -v "^-*$" > .phing_targets
fi
compadd `cat .phing_targets`
fi