[weasel-commit] Source: utilitymethods=20100804-1

  • From: rbuilder@xxxxxxxxx
  • To: weasel-commit@xxxxxxxxxxxxx
  • Date: Wed, 04 Aug 2010 14:34:09 -0400

================================
utilitymethods:source=20100804-1
cvc rdiff utilitymethods -1 /weasel.rpath.org@wgl:3-devel/20100804-1
================================
20100804-1 Filip Brcic (brcha@xxxxxxxxxxxx) Wed Aug  4 14:34:02 2010
    Several utility methods, based on portage\'s methods

utilitymethods.recipe: new
--- /dev/null
+++ utilitymethods.recipe
@@ -0,0 +112 @@
+#
+# Copyright (c) 2010 Weasel GNU/Linux [Filip Brcic (brcha@xxxxxxxxxxxx)]
+# Distributed under the terms of the GNU General Public License v3
+#
+
+import datetime
+
+class UtilityMethods(PackageRecipe):
+    """ Set of utility functions to ease package writting
+    These functions are based on Gentoo portage standard functions
+    """
+    name = 'utilitymethods'
+    version = datetime.date.today().strftime("%Y%m%d")
+
+    def use(r, name):
+        return r.useq(name)
+
+    def usev(r, name):
+        """ Return flag name if it is enabled or empty string elseway """
+        if r.useq(name):
+            return name
+        return ''
+
+    def useq(r, name):
+        """ Checks if name is a valid Use/Flag/ArchFlag and returns it's value 
"""
+        if hasattr(Flags, name):
+            return getattr(Flags, name)
+        if hasattr(Use, name):
+            return getattr(Use, name)
+        if Arch.x86:
+            if hasattr(Arch.x86, name):
+                return getattr(Arch.x86, name)
+        elif Arch.x86_64:
+            if hasattr(Arch.x86_64, name):
+                return getattr(Arch.x86_64, name)
+        # If value is not returned by now, flag probably doesn't exist, so
+        # assume it has value False, and print message on terminal
+        print 'WARNING: Flag "%s" doesn\'t exist!' % name
+        return False
+
+    def has_version(r, name):
+        """ Return true if given package is installed """
+        try:
+            loadInstalled(name)
+            return True
+        except:
+            return False
+
+    def use_with(r, name, withname=None, withvalue=None):
+        """ Return --with-name or --without-name depending on flag value """
+        if withname is None:
+            withname = name
+        if withvalue is not None:
+            withvalue = '=' + str(withvalue) # str(string) = string, so 
changes nothing
+
+        if r.useq(name):
+            return ' --with-' + withname + withvalue + ' '
+        else:
+            return ' --without-' + withname + ' '
+
+    def use_with_only(r, name, withname=None, withvalue=None):
+        """ Return --with-name only if flag is true """
+        if r.useq(name):
+            return r.use_with(name, withname, withvalue)
+        else:
+            return ''
+
+    def use_without(r, name, withname=None):
+        """ Return --without-name only if flag is false """
+        if not r.useq(name):
+            return r.use_with(name, withname)
+        else:
+            return ''
+
+    def use_enable(r, name, enablename=None, enablevalue=None):
+        """ Return --enable-name or --disable-name depending on flag value """
+        if enablename is None:
+            enablename = name
+        if enablevalue is not None:
+            enablevalue = '=' + str(enablevalue) # str(string) = string, so 
changes nothing
+
+        if r.useq(name):
+            return ' --enable-' + enablename + enablevalue + ' '
+        else:
+            return ' --disable-' + enablename + ' '
+
+    def use_enable_only(r, name, enablename=None, enablevalue=None):
+        """ Return --enable-name if name flag is true """
+        if r.useq(name):
+            return r.use_enable(name, enablename, enablevalue)
+        else:
+            return ''
+
+    def use_disable(r, name, enablename=None):
+        """ Return --disable-name if name flag is false """
+        if not r.useq(name):
+            return r.use_enable(name, enablename)
+        else:
+            return ''
+
+    def keepdir(r, name):
+        """ Creates and excludes from deletion the named directory """
+        r.MakeDirs(name)
+        r.ExcludeDirectories(exceptions=name)
+
+    def update_gnuconfig(r, dir='.'):
+        """ Updates config.sub and config.guess files """
+        r.Run('find . -name config.guess -exec cp -f 
%(datadir)s/gnuconfig/config.guess \{\} \;',
+              dir=dir)
+        r.Run('find . -name config.sub -exec cp -f 
%(datadir)s/gnuconfig/config.guess \{\} \;',
+              dir=dir)
+        


Committed by: brcha

Other related posts:

  • » [weasel-commit] Source: utilitymethods=20100804-1 - rbuilder