creffett    14/03/15 00:47:42

  Modified:             eutils.eclass
  Log:
  Add optfeature to eutils.eclass wrt bug 498988, ACKed by WilliamH

Revision  Changes    Path
1.432                eclass/eutils.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?rev=1.432&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?rev=1.432&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?r1=1.431&r2=1.432

Index: eutils.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v
retrieving revision 1.431
retrieving revision 1.432
diff -u -r1.431 -r1.432
--- eutils.eclass       8 Jan 2014 06:46:18 -0000       1.431
+++ eutils.eclass       15 Mar 2014 00:47:42 -0000      1.432
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.431 2014/01/08 
06:46:18 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.432 2014/03/15 
00:47:42 creffett Exp $
 
 # @ECLASS: eutils.eclass
 # @MAINTAINER:
@@ -1729,4 +1729,49 @@
 
 check_license() { die "you no longer need this as portage supports 
ACCEPT_LICENSE itself"; }
 
+# @FUNCTION: optfeature
+# @USAGE: <short description> <package atom to match> [other atoms]
+# @DESCRIPTION:
+# Print out a message suggesting an optional package (or packages) which
+# provide the described functionality
+#
+# The following snippet would suggest app-misc/foo for optional foo support,
+# app-misc/bar or app-misc/baz[bar] for optional bar support
+# and either both app-misc/a and app-misc/b or app-misc/c for alphabet support.
+# @CODE:
+#              optfeature "foo support" app-misc/foo
+#              optfeature "bar support" app-misc/bar app-misc/baz[bar]
+#              optfeature "alphabet support" "app-misc/a app-misc/b" app-misc/c
+#
+optfeature() {
+       debug-print-function ${FUNCNAME} "$@"
+       local i j msg
+       local desc=$1
+       local flag=0
+       shift
+       for i; do
+               for j in $i; do
+                       if has_version "$j"; then
+                               flag=1
+                       else
+                               flag=0
+                               break
+                       fi
+               done
+               if [[ $flag -eq 1 ]]; then
+                       break
+               fi
+       done
+       if [[ $flag -eq 0 ]]; then
+               for i; do
+                       msg=" "
+                       for j in $i; do
+                               msg="${msg} ${j} and"
+                       done
+                       msg="${msg:0: -4} for ${desc}"
+                       elog "${msg}"
+               done
+       fi
+}
+
 fi




Reply via email to