#!/bin/sh # # Copyright (C) 2013, 2016, 2018 Etersoft # Copyright (C) 2013, 2016, 2018 Vitaly Lipatov <lav@etersoft.ru> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # TODO: will it has local only mode? load_helper epm-print epm_whatdepends() { local CMD [ -n "$pkg_files" ] && fatal "whatdepends does not handle files" [ -n "$pkg_names" ] || fatal "whatdepends: package name is missed" local pkg=$(print_name $pkg_names) # by package name case $PMTYPE in apt-rpm) if [ -z "$verbose" ] ; then showcmd apt-cache whatdepends $pkg if [ -n "$short" ] ; then # TODO: use common converter from full name to short name # TODO: see print_pkgname a= apt-cache whatdepends $pkg | grep "^ [^ ]" | sed -e "s|[0-9]*:||" | grep -E -v "(i586-|-debuginfo)" | sed -e 's|[@:].*||' -e "s|-[0-9].*||g" -e 's|^ *||' -e 's/\.32bit//g' else load_helper epm-query a= apt-cache whatdepends $pkg | grep "^ [^ ]" | sed -e "s|[0-9]*:||" | grep -E -v "(i586-|-debuginfo)" fi return fi CMD="apt-cache whatdepends" ;; apt-dpkg|aptitude-dpkg) CMD="apt-cache rdepends" ;; aptitude-dpkg) CMD="aptitude why" ;; packagekit) CMD="pkcon depends-on" ;; yum-rpm) CMD="repoquery --whatrequires" ;; urpm-rpm) CMD="urpmq --whatrequires" ;; dnf-rpm) # check command: dnf repoquery --whatrequires CMD="repoquery --whatrequires" ;; emerge) assure_exists equery CMD="equery depends -a" ;; homebrew) CMD="brew uses" ;; pkgng) CMD="pkg info -r" ;; aptcyg) CMD="apt-cyg rdepends" ;; opkg) CMD="opkg whatdepends" ;; xbps) CMD="xbps-query -X" ;; *) fatal "Have no suitable command for $PMTYPE" ;; esac docmd $CMD $pkg }