diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2013-02-08 09:16:51 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-11 14:46:10 +0000 |
commit | 0d85fa531b03f0e7b3ad3d2a5a4d92293b43b8ff (patch) | |
tree | bf43e88c6066d62cf42ca135c5d12013bcb9a144 /meta/recipes-devtools/python | |
parent | 06e245303c2694dc76973250d9061c0e07ea2a3f (diff) | |
download | poky-0d85fa531b03f0e7b3ad3d2a5a4d92293b43b8ff.tar.gz |
python-smartpm: show friendly error if YAML output requested without PyYAML
Instead of a python backtrace, tell the user they need to install PyYAML
if they wish to use the --yaml output options.
Fixes [YOCTO #3768].
(From OE-Core rev: 69caf24112c11609eb351bea09817029bca0ff2e)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/python')
-rw-r--r-- | meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch | 86 | ||||
-rw-r--r-- | meta/recipes-devtools/python/python-smartpm_1.4.1.bb | 1 |
2 files changed, 87 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch b/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch new file mode 100644 index 0000000000..e16c5c12aa --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch | |||
@@ -0,0 +1,86 @@ | |||
1 | Print a more friendly error if YAML output is requested without PyYAML | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | |||
5 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
6 | |||
7 | diff --git a/smart/commands/channel.py b/smart/commands/channel.py | ||
8 | index 63fbb35..108f3f1 100644 | ||
9 | --- a/smart/commands/channel.py | ||
10 | +++ b/smart/commands/channel.py | ||
11 | @@ -339,7 +339,10 @@ def main(ctrl, opts): | ||
12 | |||
13 | |||
14 | if opts.yaml is not None: | ||
15 | - import yaml | ||
16 | + try: | ||
17 | + import yaml | ||
18 | + except ImportError: | ||
19 | + raise Error, _("Please install PyYAML in order to use this function") | ||
20 | yamlchannels = {} | ||
21 | for alias in (opts.yaml or sysconf.get("channels", ())): | ||
22 | channel = sysconf.get(("channels", alias)) | ||
23 | diff --git a/smart/commands/config.py b/smart/commands/config.py | ||
24 | index 4fe4366..aa1db78 100644 | ||
25 | --- a/smart/commands/config.py | ||
26 | +++ b/smart/commands/config.py | ||
27 | @@ -137,7 +137,10 @@ def main(ctrl, opts): | ||
28 | pprint.pprint(sysconf.get((), hard=True)) | ||
29 | |||
30 | if opts.yaml is not None: | ||
31 | - import yaml | ||
32 | + try: | ||
33 | + import yaml | ||
34 | + except ImportError: | ||
35 | + raise Error, _("Please install PyYAML in order to use this function") | ||
36 | if opts.yaml: | ||
37 | marker = object() | ||
38 | for opt in opts.yaml: | ||
39 | diff --git a/smart/commands/flag.py b/smart/commands/flag.py | ||
40 | index ed18999..8b90496 100644 | ||
41 | --- a/smart/commands/flag.py | ||
42 | +++ b/smart/commands/flag.py | ||
43 | @@ -138,7 +138,10 @@ def main(ctrl, opts): | ||
44 | |||
45 | |||
46 | if opts.yaml is not None: | ||
47 | - import yaml | ||
48 | + try: | ||
49 | + import yaml | ||
50 | + except ImportError: | ||
51 | + raise Error, _("Please install PyYAML in order to use this function") | ||
52 | yamlflags = {} | ||
53 | for flag in opts.yaml or pkgconf.getFlagNames(): | ||
54 | flag = flag.strip() | ||
55 | diff --git a/smart/commands/mirror.py b/smart/commands/mirror.py | ||
56 | index ca50a95..f7b019d 100644 | ||
57 | --- a/smart/commands/mirror.py | ||
58 | +++ b/smart/commands/mirror.py | ||
59 | @@ -218,7 +218,10 @@ def main(ctrl, opts): | ||
60 | |||
61 | |||
62 | if opts.yaml: | ||
63 | - import yaml | ||
64 | + try: | ||
65 | + import yaml | ||
66 | + except ImportError: | ||
67 | + raise Error, _("Please install PyYAML in order to use this function") | ||
68 | yamlmirrors = {} | ||
69 | mirrors = sysconf.get("mirrors", ()) | ||
70 | for origin in mirrors: | ||
71 | diff --git a/smart/commands/priority.py b/smart/commands/priority.py | ||
72 | index d850d29..441ea32 100644 | ||
73 | --- a/smart/commands/priority.py | ||
74 | +++ b/smart/commands/priority.py | ||
75 | @@ -117,7 +117,10 @@ def main(ctrl, opts): | ||
76 | |||
77 | |||
78 | elif opts.yaml: | ||
79 | - import yaml | ||
80 | + try: | ||
81 | + import yaml | ||
82 | + except ImportError: | ||
83 | + raise Error, _("Please install PyYAML in order to use this function") | ||
84 | yamlpriorities = {} | ||
85 | priorities = sysconf.get("package-priorities", {}) | ||
86 | for name in opts.args or priorities: | ||
diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb index 06641adc4c..d92933fa3a 100644 --- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb | |||
@@ -26,6 +26,7 @@ SRC_URI = "\ | |||
26 | file://smart-metadata-match.patch \ | 26 | file://smart-metadata-match.patch \ |
27 | file://smart-improve-error-reporting.patch \ | 27 | file://smart-improve-error-reporting.patch \ |
28 | file://smart-multilib-fixes.patch \ | 28 | file://smart-multilib-fixes.patch \ |
29 | file://smart-yaml-error.patch \ | ||
29 | " | 30 | " |
30 | 31 | ||
31 | SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" | 32 | SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" |