From c10f7e732307f77a7652189abecbae06490cf19a Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Sat, 31 Mar 2018 13:28:11 +1100 Subject: [PATCH] backend: Error handling --- pywal/backends/colorthief.py | 8 +++++++- pywal/backends/colorz.py | 7 +++++++ pywal/backends/wal.py | 4 ++-- pywal/colors.py | 1 + 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/pywal/backends/colorthief.py b/pywal/backends/colorthief.py index d223431..be8a3f1 100644 --- a/pywal/backends/colorthief.py +++ b/pywal/backends/colorthief.py @@ -3,7 +3,13 @@ Generate a colorscheme using ColorThief. """ import sys -from colorthief import ColorThief +try: + from colorthief import ColorThief + +except ImportError: + print("Error: ColorThief wasn't found on your system.", + "Try another backend. (wal --backend)") + sys.exit(1) from .. import util diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py index e67a8c8..5884e54 100644 --- a/pywal/backends/colorz.py +++ b/pywal/backends/colorz.py @@ -1,7 +1,9 @@ """ Generate a colorscheme using Colorz. """ +import shutil import subprocess +import sys from .. import util @@ -40,6 +42,11 @@ def adjust(colors, light): def get(img, light=False): """Get colorscheme.""" + if not shutil.which("colorz"): + print("Error: Colorz wasn't found on your system.", + "Try another backend. (wal --backend)") + sys.exit(1) + colors = gen_colors(img) colors = [color.decode('UTF-8').split()[0] for color in colors] return adjust(colors, light) diff --git a/pywal/backends/wal.py b/pywal/backends/wal.py index af955a4..71cd7e4 100644 --- a/pywal/backends/wal.py +++ b/pywal/backends/wal.py @@ -26,8 +26,8 @@ def has_im(): elif shutil.which("convert"): return ["convert"] - print("error: imagemagick not found, exiting...\n" - "error: wal requires imagemagick to function.") + print("Error: ImageMagick wasn't found on your system.", + "Try another backend. (wal --backend)") sys.exit(1) diff --git a/pywal/colors.py b/pywal/colors.py index 7611826..d169c00 100644 --- a/pywal/colors.py +++ b/pywal/colors.py @@ -3,6 +3,7 @@ Generate a palette using various backends. """ import os import re +import shutil import sys from . import backends