[sisyphus] Re: zsh completion for rpm

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Окт 23 07:48:22 MSD 2004


On Sat, Oct 23, 2004 at 09:32:39AM +0600, Andrey Rahmatullin wrote:
> > кэш автоматически обновляется при изменении базы rpm и/или apt.
> Где это видно? В /usr/share/zsh/Completion/*/_{rpm,apt} видно
> обновление только если кэш старше недели. Или я чего-то не понимаю?

Как раз старый /usr/share/zsh/Completion/*/_rpm подменится через $fpath
на новый _rpm.

В новом _rpm используется `_rpm_packages installed', поэтому смотреть
надо в /usr/share/zsh/Completion/*/_rpm_packages:

 _rpms_caching_policy () {
    # rebuild if cache is more than a week old
      oldp=( "$1"(mw+1) )
        (( $#oldp )) && return 0

  pkg_indices=( /var/lib/rpm/{packages.rpm,Packages}(N) )
  for pkg_index in $pkg_indices; do
    [[ "$pkg_index" -nt "$1" ]] && return 0
  done
          }

Этот код немного грешен (прежде всего отступами), в следующей сборке
я его переделаю на 

_rpms_caching_policy () {
  local cache_path="$1" cache_ident="$_cache_ident"

  # rebuild if cache is more than a week old
  oldp=( "$cache_path"(mw+1) )
  (( $#oldp )) && return 0

  if [[ $cache_ident = RPMS_installed ]]; then
    pkg_indices=( /var/lib/rpm/{packages.rpm,Packages}(N) )
  else
    pkg_indices=( /var/lib/apt/lists/*(.N) )
  fi

  for pkg_index in $pkg_indices; do
    [[ "$pkg_index" -nt "$cache_path" ]] && return 0
  done
  return 1
}


> -- 
> WBR, wRAR (ALT Linux Team)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20041023/855eccc5/attachment-0003.bin>


Подробная информация о списке рассылки Sisyphus