diff --git a/xbps-src/shutils/show_revdeps.sh b/xbps-src/shutils/show_revdeps.sh new file mode 100644 index 00000000000..a2aed58316e --- /dev/null +++ b/xbps-src/shutils/show_revdeps.sh @@ -0,0 +1,44 @@ +#- +# Copyright (c) 2011 Juan Romero Pardines. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#- + +show_pkg_revdeps() +{ + local f revdepname tmplf + + [ -z "$1" ] && return 1 + + for f in $(find ${XBPS_SRCPKGDIR} -type f -name \*template); do + if ! egrep -q "^Add_dependency[[:blank:]]+(run|full|build)[[:blank:]]+${1}$" $f; then + continue + fi + tmplf=$(basename $f) + if [ "$tmplf" != template ]; then + revdepname=${tmplf%.template} + else + revdepname=$(basename $(dirname $f)) + fi + echo $revdepname + done +} diff --git a/xbps-src/xbps-src.sh.in b/xbps-src/xbps-src.sh.in index 8fe98aadaf5..215583d001d 100644 --- a/xbps-src/xbps-src.sh.in +++ b/xbps-src/xbps-src.sh.in @@ -95,9 +95,6 @@ Targets: fetch [pkgname] Download package source distribution file(s). - info [pkgname] - Show information for the specified package. - install [pkgname] Installs a package into destination directory and \`stows' its files into . If a package is not from bootstrap group, its files will be @@ -106,10 +103,6 @@ Targets: list List installed packages in . - list-files - List package files from . Package must be fully installed - into for this to work. - make-repoidx Build a package index for the local repository associated with the master directory . By default set to and . + show [pkgname] + Show information for the specified package. + + show-files + Show package files from . Package must be fully installed + into for this to work (stowed). + + show-revdeps + Show reverse dependencies for , i.e packages that are currently + depending on . + stow [pkgname] Stow files from into and register package - in database. When a package is \`stown', its files will be available in + in database. When a package is \`stowed', its files will be available in , and other packages will be able to found it. unstow [pkgname] @@ -429,7 +433,7 @@ clean) setup_tmpl ${_pkgname} remove_tmpl_wrksrc $wrksrc ;; -extract|fetch|info) +extract|fetch) if [ -z "${_pkgname}" ]; then [ ! -r ./template ] && msg_error "missing build template in $(pwd).\n" _pkgname=$(basename_cwd) @@ -458,9 +462,6 @@ install) list) $XBPS_BIN_CMD list ;; -list-files) - list_pkg_files ${_pkgname} - ;; make-repoidx) if [ -n "${_PACKAGEDIR}" ]; then export XBPS_PACKAGESDIR=${_PACKAGEDIR} @@ -481,6 +482,20 @@ remove) remove_pkg fi ;; +show) + if [ -z "${_pkgname}" ]; then + [ ! -r ./template ] && msg_error "missing build template in $(pwd).\n" + _pkgname=$(basename_cwd) + fi + setup_tmpl ${_pkgname} + info_tmpl + ;; +show-files) + list_pkg_files ${_pkgname} + ;; +show-revdeps) + show_pkg_revdeps ${_pkgname} + ;; stow) stow_flag=yes if [ -z "${_pkgname}" ]; then