File: zffcache

package info (click to toggle)
zsh-beta 4.3.17-dev-0%2B20120621-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 19,804 kB
  • sloc: ansic: 95,966; sh: 5,899; makefile: 845; perl: 745; awk: 383; sed: 16
file content (26 lines) | stat: -rw-r--r-- 729 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Generate an array name for storing the cache for the current session,
# storing it in fcache_name, then generate the cache for the current
# directory, or with argument -d clear the cache.

[[ $1 = -d ]] && local fcache_name

fcache_name=$zfconfig[fcache_$ZFTP_SESSION]
if [[ -z $fcache_name ]]; then
  local vals
  vals=(${(v)zfconfig[(I)fcache_*]##zftp_fcache_})
  integer i
  while [[ -n ${vals[(r)zftp_fcache_$i]} ]]; do
    (( i++ ))
  done
  fcache_name=zftp_fcache_$i
  zfconfig[fcache_$ZFTP_SESSION]=$fcache_name
fi

if [[ $1 = -d ]]; then
  unset $fcache_name
elif (( ${(P)#fcache_name} == 0 )); then
  local tmpf=${TMPPREFIX}zffcache$$
  zftp ls >$tmpf
  eval "$fcache_name=(\${(f)\"\$(<\$tmpf)\"})"
  rm -f $tmpf
fi