Server IP : 51.89.169.208 / Your IP : 216.73.216.211 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/share/zsh/5.5.1/functions/ |
Upload File : |
#autoload # Usage: _deb_packages expl... (installed|deinstalled|xinstalled|held|uninstalled|avail|available|source) _deb_packages_update_avail () { if ( [[ ${+_deb_packages_cache_avail} -eq 0 ]] || _cache_invalid DEBS_avail ) && ! _retrieve_cache DEBS_avail; then _deb_packages_cache_avail=( ${(f)"$(apt-cache --generate pkgnames 2>/dev/null)"} ) _store_cache DEBS_avail _deb_packages_cache_avail fi cachevar=_deb_packages_cache_avail } _deb_packages_update_installed () { if ( [[ ${+_deb_packages_cache_installed} -eq 0 ]] || _cache_invalid DEBS_installed ) && ! _retrieve_cache DEBS_installed; then _deb_packages_cache_installed=() dpkg --get-selections | while read package state ; do [[ $state = (install|hold) ]] && _deb_packages_cache_installed+=$package done _store_cache DEBS_installed _deb_packages_cache_installed fi cachevar=_deb_packages_cache_installed } _deb_packages_update_held () { if ( [[ ${+_deb_packages_cache_held} -eq 0 ]] || _cache_invalid DEBS_held ) && ! _retrieve_cache DEBS_held; then _deb_packages_cache_held=() dpkg --get-selections | while read package state ; do [[ $state = hold ]] && _deb_packages_cache_held+=$package done _store_cache DEBS_held _deb_packages_cache_held fi cachevar=_deb_packages_cache_held } _deb_packages_update_deinstalled () { if ( [[ ${+_deb_packages_cache_deinstalled} -eq 0 ]] || _cache_invalid DEBS_deinstalled ) && ! _retrieve_cache DEBS_deinstalled; then _deb_packages_cache_deinstalled=() dpkg --get-selections | while read package state ; do [[ $state = deinstall ]] && _deb_packages_cache_deinstalled+=$package done _store_cache DEBS_deinstalled _deb_packages_cache_deinstalled fi cachevar=_deb_packages_cache_deinstalled } _deb_packages_update_xinstalled () { if ( [[ ${+_deb_packages_cache_xinstalled} -eq 0 ]] || _cache_invalid DEBS_xinstalled ) && ! _retrieve_cache DEBS_xinstalled; then _deb_packages_cache_xinstalled=() dpkg --get-selections | while read package state ; do _deb_packages_cache_xinstalled+=$package done _store_cache DEBS_xinstalled _deb_packages_cache_xinstalled fi cachevar=_deb_packages_cache_xinstalled } _deb_packages_update_uninstalled () { _deb_packages_update_avail _deb_packages_update_installed if (( ! $+_deb_packages_cache_uninstalled )); then # Package lists too large to efficiently diff with zsh expansion _deb_packages_cache_uninstalled=( $( print -l $_deb_packages_cache_avail | fgrep -xvf =(print -l $_deb_packages_cache_installed) ) ) fi cachevar=_deb_packages_cache_uninstalled } _deb_packages_update_source () { if ( [[ ${+_deb_packages_cache_source} -eq 0 ]] || _cache_invalid DEBS_source ) && ! _retrieve_cache DEBS_source; then _deb_packages_cache_source=( # requires apt >= 1.1.8 # if dpkg --compare-versions "$(dpkg-query --show --showformat '${Version}\n' apt)" '>=' '1.1.8' ; then ...; else ...; fi ${(f)"$(/usr/lib/apt/apt-helper cat-file $(apt-get indextargets --format '$(FILENAME)' 'Created-By: Sources' 2>/dev/null) 2>/dev/null | sed -ne 's/^Package: //p' | uniq)"} ) _store_cache DEBS_source _deb_packages_cache_source fi cachevar=_deb_packages_cache_source } _deb_packages () { local command="$argv[$#]" expl cachevar pkgset update_policy zstyle -s ":completion:*:*:$service:*" cache-policy update_policy if [[ -z "$update_policy" ]]; then zstyle ":completion:*:*:$service:*" cache-policy _debs_caching_policy fi [[ "$command" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available|source) ]] || { _message "unknown command: $command" return } zstyle -s ":completion:${curcontext}:" packageset pkgset [[ "$pkgset" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available|source) ]] || { pkgset="$command" } [[ "$pkgset" = "available" ]] && pkgset="avail" expl=("${(@)argv[1,-2]}") _deb_packages_update_$pkgset typeset -gH $cachevar _tags packages && compadd "$expl[@]" -a - $cachevar } _debs_caching_policy () { # rebuild if cache is more than a week old local -a oldp oldp=( "$1"(mw+1) ) (( $#oldp )) && return 0 [[ /var/cache/apt/pkgcache.bin -nt "$1" || /var/lib/dpkg/available -nt "$1" ]] } _deb_packages "$@"