Print a more friendly error if YAML output is requested without PyYAML

Upstream-Status: Pending

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>

diff --git a/smart/commands/channel.py b/smart/commands/channel.py
index 63fbb35..108f3f1 100644
--- a/smart/commands/channel.py
+++ b/smart/commands/channel.py
@@ -339,7 +339,10 @@ def main(ctrl, opts):
                     print
 
     if opts.yaml is not None:
-        import yaml
+        try:
+            import yaml
+        except ImportError:
+            raise Error, _("Please install PyYAML in order to use this function")
         yamlchannels = {}
         for alias in (opts.yaml or sysconf.get("channels", ())):
             channel = sysconf.get(("channels", alias))
diff --git a/smart/commands/config.py b/smart/commands/config.py
index 4fe4366..aa1db78 100644
--- a/smart/commands/config.py
+++ b/smart/commands/config.py
@@ -137,7 +137,10 @@ def main(ctrl, opts):
             pprint.pprint(sysconf.get((), hard=True))
 
     if opts.yaml is not None:
-        import yaml
+        try:
+            import yaml
+        except ImportError:
+            raise Error, _("Please install PyYAML in order to use this function")
         if opts.yaml:
             marker = object()
             for opt in opts.yaml:
diff --git a/smart/commands/flag.py b/smart/commands/flag.py
index ed18999..8b90496 100644
--- a/smart/commands/flag.py
+++ b/smart/commands/flag.py
@@ -138,7 +138,10 @@ def main(ctrl, opts):
             print
 
     if opts.yaml is not None:
-        import yaml
+        try:
+            import yaml
+        except ImportError:
+            raise Error, _("Please install PyYAML in order to use this function")
         yamlflags = {}
         for flag in opts.yaml or pkgconf.getFlagNames():
             flag = flag.strip()
diff --git a/smart/commands/mirror.py b/smart/commands/mirror.py
index ca50a95..f7b019d 100644
--- a/smart/commands/mirror.py
+++ b/smart/commands/mirror.py
@@ -218,7 +218,10 @@ def main(ctrl, opts):
             print
 
     if opts.yaml:
-        import yaml
+        try:
+            import yaml
+        except ImportError:
+            raise Error, _("Please install PyYAML in order to use this function")
         yamlmirrors = {}
         mirrors = sysconf.get("mirrors", ())
         for origin in mirrors:
diff --git a/smart/commands/priority.py b/smart/commands/priority.py
index d850d29..441ea32 100644
--- a/smart/commands/priority.py
+++ b/smart/commands/priority.py
@@ -117,7 +117,10 @@ def main(ctrl, opts):
         print
 
     elif opts.yaml:
-        import yaml
+        try:
+            import yaml
+        except ImportError:
+            raise Error, _("Please install PyYAML in order to use this function")
         yamlpriorities = {}
         priorities = sysconf.get("package-priorities", {})
         for name in opts.args or priorities:
