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 () { _ant_does_target_list_need_generating () {
if [ ! -f .ant_targets ]; then return 0; [ ! -f .ant_targets ] && return 0;
else [ .ant_targets -nt build.xml ] && return 0;
accurate=$($stat_cmd .ant_targets) return 1;
changed=$($stat_cmd build.xml)
return $(expr $accurate '>=' $changed)
fi
} }
_ant () { _ant () {

View File

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

View File

@ -54,27 +54,14 @@ function in_gradle() {
fi 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 ############################################################################## Examine the build.gradle file to see if its
# timestamp has changed, and if so, regen # timestamp has changed, and if so, regen
# the .gradle_tasks cache file # the .gradle_tasks cache file
############################################################################ ############################################################################
_gradle_does_task_list_need_generating () { _gradle_does_task_list_need_generating () {
if [ ! -f .gradletasknamecache ]; then return 0; [ ! -f .gradletasknamecache ] && return 0;
else [ .gradletasknamecache -nt build.gradle ] && return 0;
accurate=$($stat_cmd .gradletasknamecache) return 1;
changed=$($stat_cmd build.gradle)
return $(expr $accurate '>=' $changed)
fi
} }

View File

@ -1,16 +1,13 @@
_phing_does_target_list_need_generating () { _phing_does_target_list_need_generating () {
if [ ! -f .phing_targets ]; then return 0; [ ! -f .phing_targets ] && return 0;
else [ .phing_targets -nt build.xml ] && return 0;
accurate=$(stat -f%m .phing_targets) return 1;
changed=$(stat -f%m build.xml)
return $(expr $accurate '>=' $changed)
fi
} }
_phing () { _phing () {
if [ -f build.xml ]; then if [ -f build.xml ]; then
if _phing_does_target_list_need_generating; 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 fi
compadd `cat .phing_targets` compadd `cat .phing_targets`
fi fi