summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordol-sen <brian.dolbec@gmail.com>2011-07-28 23:10:33 -0700
committerdol-sen <brian.dolbec@gmail.com>2011-07-28 23:10:33 -0700
commitba4481d37cbedc5700b5ea21c5a1897389ecc1cb (patch)
treefc088e15766903eecc75bbc2b0f1f38b013c8985
parenta0592d60f5420e13e3833fed2e3e8885c4b033e1 (diff)
downloadlayman-ba4481d37cbedc5700b5ea21c5a1897389ecc1cb.tar.gz
layman-ba4481d37cbedc5700b5ea21c5a1897389ecc1cb.tar.bz2
layman-ba4481d37cbedc5700b5ea21c5a1897389ecc1cb.zip
fix the overly noisy output for unsupported overlay types. Thank you fuzzyray for reporting.
-rw-r--r--layman/dbbase.py2
-rw-r--r--layman/overlays/bzr.py2
-rw-r--r--layman/overlays/cvs.py2
-rw-r--r--layman/overlays/darcs.py2
-rw-r--r--layman/overlays/g_common.py3
-rw-r--r--layman/overlays/git.py2
-rw-r--r--layman/overlays/mercurial.py2
-rw-r--r--layman/overlays/rsync.py2
-rw-r--r--layman/overlays/source.py33
-rw-r--r--layman/overlays/svn.py2
-rw-r--r--layman/overlays/tar.py2
11 files changed, 34 insertions, 20 deletions
diff --git a/layman/dbbase.py b/layman/dbbase.py
index b6b0e6d..4714d5f 100644
--- a/layman/dbbase.py
+++ b/layman/dbbase.py
@@ -75,7 +75,7 @@ class BrokenOverlayCatalog(ValueError):
#
#-------------------------------------------------------------------------------
-class DbBase:
+class DbBase(object):
''' Handle a list of overlays.'''
def __init__(self, config, paths=None, ignore = 0,
diff --git a/layman/overlays/bzr.py b/layman/overlays/bzr.py
index 5844176..40e5b81 100644
--- a/layman/overlays/bzr.py
+++ b/layman/overlays/bzr.py
@@ -89,4 +89,4 @@ class BzrOverlay(OverlaySource):
return require_supported(
[(self.command(), 'bzr', 'dev-vcs/bzr'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/cvs.py b/layman/overlays/cvs.py
index 83981e5..c902250 100644
--- a/layman/overlays/cvs.py
+++ b/layman/overlays/cvs.py
@@ -114,4 +114,4 @@ class CvsOverlay(OverlaySource):
return require_supported(
[(self.command(), 'cvs', 'dev-vcs/cvs'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/darcs.py b/layman/overlays/darcs.py
index 02ef3c7..3e24ebe 100644
--- a/layman/overlays/darcs.py
+++ b/layman/overlays/darcs.py
@@ -90,4 +90,4 @@ class DarcsOverlay(OverlaySource):
return require_supported(
[(self.command(), 'darcs', 'dev-vcs/darcs'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/g_common.py b/layman/overlays/g_common.py
index df7c4a4..cb162e8 100644
--- a/layman/overlays/g_common.py
+++ b/layman/overlays/g_common.py
@@ -84,4 +84,5 @@ class GCommonOverlay(OverlaySource):
'app-portage/g-common'),
('/usr/share/g-common/drivers/'+self.driver+'.cfg',
'g-common for '+self.driver,
- 'app-portage/g-'+self.driver),], self.output.error)
+ 'app-portage/g-'+self.driver),],
+ self.output.warn)
diff --git a/layman/overlays/git.py b/layman/overlays/git.py
index 5775277..f6a350f 100644
--- a/layman/overlays/git.py
+++ b/layman/overlays/git.py
@@ -95,4 +95,4 @@ class GitOverlay(OverlaySource):
return require_supported(
[(self.command(), 'git', 'dev-vcs/git'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/mercurial.py b/layman/overlays/mercurial.py
index ebaf635..5247e78 100644
--- a/layman/overlays/mercurial.py
+++ b/layman/overlays/mercurial.py
@@ -90,4 +90,4 @@ class MercurialOverlay(OverlaySource):
return require_supported(
[(self.command(), 'mercurial', 'dev-vcs/mercurial'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/rsync.py b/layman/overlays/rsync.py
index f4537ed..3c03ae2 100644
--- a/layman/overlays/rsync.py
+++ b/layman/overlays/rsync.py
@@ -86,4 +86,4 @@ class RsyncOverlay(OverlaySource):
return require_supported(
[(self.command(), 'rsync', 'net-misc/rsync'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/source.py b/layman/overlays/source.py
index b833fd2..083beb6 100644
--- a/layman/overlays/source.py
+++ b/layman/overlays/source.py
@@ -20,11 +20,21 @@ import shutil
import subprocess
from layman.utils import path
-
-def _resolve_command(command, error_output):
+supported_cache = {}
+
+def _supported(key, check_supported=None):
+ """internal caching function that checks tracks any
+ un-supported/supported repo types."""
+ if key is None:
+ return False
+ if key not in supported_cache:
+ supported_cache[key] = check_supported()
+ return supported_cache[key]
+
+def _resolve_command(command, _output):
if os.path.isabs(command):
if not os.path.exists(command):
- error_output('Program "%s" not found' % command)
+ _output('Program "%s" not found' % command, 6)
return ('File', None)
return ('File', command)
else:
@@ -34,18 +44,18 @@ def _resolve_command(command, error_output):
f = os.path.join(d, command)
if os.path.exists(f):
return ('Command', f)
- error_output('Cound not resolve command ' +\
- '"%s" based on PATH "%s"' % (command, env_path))
+ _output('Cound not resolve command ' +\
+ '"%s" based on PATH "%s"' % (command, env_path), 6)
return ('Command', None)
-def require_supported(binaries, error_output):
+def require_supported(binaries, _output):
for command, mtype, package in binaries:
- kind, path = _resolve_command(command, error_output)
+ kind, path = _resolve_command(command, _output)
if not path:
- error_output(kind + ' ' + command + ' seems to be missing!'
+ _output(kind + ' ' + command + ' seems to be missing!'
' Overlay type "' + mtype + '" not support'
- 'ed. Did you emerge ' + package + '?')
+ 'ed. Did you emerge ' + package + '?', 6)
return False
return True
@@ -106,7 +116,10 @@ class OverlaySource(object):
def is_supported(self):
'''Is the overlay type supported?'''
- return self.supported()
+ return _supported(self.get_type_key(), self.supported)
+
+ def get_type_key(self):
+ return '%s' % self.__class__.type_key
def command(self):
return self.config['%s_command' % self.__class__.type_key]
diff --git a/layman/overlays/svn.py b/layman/overlays/svn.py
index 59b6284..97f03d6 100644
--- a/layman/overlays/svn.py
+++ b/layman/overlays/svn.py
@@ -103,4 +103,4 @@ class SvnOverlay(OverlaySource):
return require_supported(
[(self.command(), 'svn','dev-vcs/subversion'),],
- self.output.error)
+ self.output.warn)
diff --git a/layman/overlays/tar.py b/layman/overlays/tar.py
index dc2234a..7be2ed2 100644
--- a/layman/overlays/tar.py
+++ b/layman/overlays/tar.py
@@ -210,7 +210,7 @@ class TarOverlay(OverlaySource):
return require_supported(
[(self.command(), 'tar', 'app-arch/tar'), ],
- self.output.error)
+ self.output.warn)
if __name__ == '__main__':
import doctest