From b351f2e8aa1021151bcd750674e72ed5d2d7e203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 25 Aug 2019 17:48:20 +0200 Subject: [PATCH] sassw: write errors to css file, like ruby-sass --- bin/sassw | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/bin/sassw b/bin/sassw index f936346..ca35bff 100755 --- a/bin/sassw +++ b/bin/sassw @@ -23,7 +23,20 @@ if os.path.isdir(filename): def build(): global sources, directories - subprocess.call(['sassc', '-mauto', filename, filename.replace('.scss', '.css')]) + result = subprocess.run( + ['sassc', '-mauto', filename, filename.replace('.scss', '.css')], + capture_output=True) + sys.stdout.write(result.stdout.decode('utf-8')) + sys.stderr.write(result.stderr.decode('utf-8')) + if result.returncode: + # error + with open(filename.replace('.scss', '.css'), 'w') as fd: + print('''body::before { + white-space: pre; + font-family: monospace; + content: "%s"; + }''' % result.stderr.decode('utf-8').replace('\n', '\\A').replace('"', '\\"'), + file=fd) basepath = os.path.abspath(os.path.dirname(filename)) sources = [os.path.abspath(os.path.join(basepath, x)) for x in json.load(open(filename.replace('.scss', '.css.map')))['sources']] directories = set([os.path.dirname(x) for x in sources])