1
0
mirror of https://github.com/limosek/zaf.git synced 2024-11-21 18:09:06 +01:00

Simplified caching

This commit is contained in:
Lukas Macura 2016-12-02 09:44:48 +01:00
parent 407fb2f77f
commit 3e2f1502d1
3 changed files with 35 additions and 56 deletions

View File

@ -4,22 +4,11 @@ zaf_cache_init(){
local files local files
local file local file
if [ -z "$ZAF_CACHE_DIR" ] || [ "$ZAF_CACHE_DIR" = "/tmp/zafc/" ]; then if [ "$ZAF_CACHE_DIR" = "/tmp/zafc" ] && ! [ -d "$ZAF_CACHE_DIR" ]; then
ZAF_CACHE_DIR=${ZAF_TMP_DIR}/zafc
mkdir -p $ZAF_CACHE_DIR mkdir -p $ZAF_CACHE_DIR
chown $ZAF_FILES_UID $ZAF_CACHE_DIR >/dev/null 2>/dev/null chown $ZAF_FILES_UID $ZAF_CACHE_DIR >/dev/null 2>/dev/null
fi fi
if [ -w $ZAF_CACHE_DIR ]; then if ! [ -w $ZAF_CACHE_DIR ]; then
zaf_trc "Cache: Removing stale entries"
files=$(find $ZAF_CACHE_DIR/ -type f -name '*.lock' -mmin +1)
[ -n "$files" ] && rm -f $files
(cd $ZAF_CACHE_DIR && find ./ -type f -name '*.info' -mmin +1 2>/dev/null | \
while read line ; do
file=$(basename $line .info)
[ "$line" -nt "$file" ] && { rm ${file}*; zaf_trc "rm ${file}*"; }
done
)
else
zaf_dbg "Cache dir $ZAF_CACHE_DIR is not accessible! Disabling cache." zaf_dbg "Cache dir $ZAF_CACHE_DIR is not accessible! Disabling cache."
fi fi
} }
@ -27,7 +16,7 @@ zaf_cache_init(){
zaf_cache_clean(){ zaf_cache_clean(){
local files local files
if [ -n "$ZAF_CACHE_DIR" ]; then if [ -w "$ZAF_CACHE_DIR" ]; then
zaf_wrn "Removing cache entries" zaf_wrn "Removing cache entries"
files=$(find $ZAF_CACHE_DIR/ -type f) files=$(find $ZAF_CACHE_DIR/ -type f)
[ -n "$files" ] && rm -f $files [ -n "$files" ] && rm -f $files
@ -128,6 +117,7 @@ zaf_cache_delentry(){
# List entries in cache # List entries in cache
zaf_cache_list(){ zaf_cache_list(){
! [ -w $ZAF_CACHE_DIR ] && return 1
local i local i
ls ${ZAF_CACHE_DIR}/*info >/dev/null 2>/dev/null || return 1 ls ${ZAF_CACHE_DIR}/*info >/dev/null 2>/dev/null || return 1
local key local key
@ -139,7 +129,7 @@ zaf_cache_list(){
# Get object from cache # Get object from cache
# $1 key # $1 key
zaf_fromcache(){ zaf_fromcache(){
! [ -r $ZAF_CACHE_DIR ] || [ -n "$ZAF_NOCACHE" ] && return 1 ! [ -w $ZAF_CACHE_DIR ] && return 3
local key local key
local value local value
local infofile local infofile
@ -150,13 +140,11 @@ zaf_fromcache(){
infofile="${ZAF_CACHE_DIR}/${key}.info" infofile="${ZAF_CACHE_DIR}/${key}.info"
if [ -f $datafile ]; then if [ -f $datafile ]; then
#zaf_cache_lock $key || return 3
#zaf_cache_unlock $key
if [ "$infofile" -nt "$datafile" ]; then if [ "$infofile" -nt "$datafile" ]; then
zaf_trc "Cache: serving $1($key) from cache" zaf_trc "Cache: serving $1($key) from cache"
cat "$datafile" || { ls -la "$datafile" >&2; zaf_err "auuu: $1"; } cat "$datafile"
else else
#zaf_cache_delentry $key zaf_cache_delentry $key
return 2 return 2
fi fi
else else

View File

@ -76,19 +76,15 @@ zaf_block_get_option() {
zaf_ctrl_get_global_option() { zaf_ctrl_get_global_option() {
local ctrlvar local ctrlvar
local ctrlopt local ctrlopt
local key
ctrlopt="ZAF_CTRL_$(zaf_stripctrl $2)"
key="$1-$2" eval ctrlvar=\$$ctrlopt
if ! zaf_fromcache $key; then if [ -n "$ctrlvar" ]; then
ctrlopt="ZAF_CTRL_$(zaf_stripctrl $2)" zaf_dbg "Overriding control field $2 from env $ctrlopt($ctrlvar)"
eval ctrlvar=\$$ctrlopt echo $ctrlopt
if [ -n "$ctrlvar" ]; then else
zaf_dbg "Overriding control field $2 from env $ctrlopt($ctrlvar)" zaf_ctrl_get_global_block <$1 | zaf_block_get_moption "$2" \
echo $ctrlopt || zaf_ctrl_get_global_block <$1 | zaf_block_get_option "$2"
else
zaf_ctrl_get_global_block <$1 | zaf_block_get_moption "$2" \
|| zaf_ctrl_get_global_block <$1 | zaf_block_get_option "$2"
fi | zaf_tocache_stdin "$key" "600"
fi fi
} }
@ -99,19 +95,15 @@ zaf_ctrl_get_global_option() {
zaf_ctrl_get_item_option() { zaf_ctrl_get_item_option() {
local ctrlvar local ctrlvar
local ctrlopt local ctrlopt
local key
key="i$1-$2-$3" ctrlopt="ZAF_CTRLI_$(zaf_stripctrl $2)_$(zaf_stripctrl $3)"
if ! zaf_fromcache "$key"; then eval ctrlvar=\$$ctrlopt
ctrlopt="ZAF_CTRLI_$(zaf_stripctrl $2)_$(zaf_stripctrl $3)" if [ -n "$ctrlvar" ]; then
eval ctrlvar=\$$ctrlopt zaf_dbg "Overriding item control field $2/$3 from env $ctrlopt($ctrlvar)"
if [ -n "$ctrlvar" ]; then echo $ctrlopt
zaf_dbg "Overriding item control field $2/$3 from env $ctrlopt($ctrlvar)" else
echo $ctrlopt zaf_ctrl_get_item_block <$1 "$2" | zaf_block_get_moption "$3" \
else || zaf_ctrl_get_item_block <$1 "$2" | zaf_block_get_option "$3"
zaf_ctrl_get_item_block <$1 "$2" | zaf_block_get_moption "$3" \
|| zaf_ctrl_get_item_block <$1 "$2" | zaf_block_get_option "$3"
fi | zaf_tocache_stdin "$key" "600"
fi fi
} }
@ -122,19 +114,15 @@ zaf_ctrl_get_item_option() {
zaf_ctrl_get_extitem_option() { zaf_ctrl_get_extitem_option() {
local ctrlvar local ctrlvar
local ctrlopt local ctrlopt
local key
key="e$1-$2-$3" ctrlopt="ZAF_CTRLI_$(zaf_stripctrl $2)_$(zaf_stripctrl $3)"
if ! zaf_fromcache "$key"; then eval ctrlvar=\$$ctrlopt
ctrlopt="ZAF_CTRLI_$(zaf_stripctrl $2)_$(zaf_stripctrl $3)" if [ -n "$ctrlvar" ]; then
eval ctrlvar=\$$ctrlopt zaf_dbg "Overriding item control field $2/$3 from env $ctrlopt($ctrlvar)"
if [ -n "$ctrlvar" ]; then echo $ctrlopt
zaf_dbg "Overriding item control field $2/$3 from env $ctrlopt($ctrlvar)" else
echo $ctrlopt zaf_ctrl_get_extitem_block <$1 "$2" | zaf_block_get_moption "$3" \
else || zaf_ctrl_get_extitem_block <$1 "$2" | zaf_block_get_option "$3"
zaf_ctrl_get_extitem_block <$1 "$2" | zaf_block_get_moption "$3" \
|| zaf_ctrl_get_extitem_block <$1 "$2" | zaf_block_get_option "$3"
fi | zaf_tocache_stdin "$key" "600"
fi fi
} }

3
zaf
View File

@ -97,6 +97,9 @@ agent-config)
| zaf_far '{PLUGINDIR}' "${plugindir}" >${ZAF_AGENT_CONFIGD}/zaf_${plugin}.conf | zaf_far '{PLUGINDIR}' "${plugindir}" >${ZAF_AGENT_CONFIGD}/zaf_${plugin}.conf
done done
;; ;;
server-config)
zaf_wrn "Not implemented yet"
;;
###### Plugins related commands ###### Plugins related commands
update) update)