sassw: write errors to css file, like ruby-sass

This commit is contained in:
Frédéric Péters 2019-08-25 17:48:20 +02:00
parent bad53ddec4
commit b351f2e8aa
1 changed files with 14 additions and 1 deletions

View File

@ -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])