diff options
Diffstat (limited to 'scss.py')
-rw-r--r-- | scss.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/scss.py b/scss.py new file mode 100644 index 00000000..2dbf179e --- /dev/null +++ b/scss.py @@ -0,0 +1,36 @@ +""" +Single-file libsass wrapper that can compile SASS/SCSS files into CSS. + +Usage: `python scss.py input.scss:output.css input2.scss:output2.css` +""" + +import sys + +import sass + +if len(sys.argv) <= 1: + print("Usage: python scss.py include_dir:input.scss:output.css import_dir:input2.sass:output2.sass") + +for arg in sys.argv[1:]: + include_dir, input_file, output_file = arg.split(":") + source_map_file = f"{output_file}.map" + + try: + compiled, source_map = sass.compile( + filename=input_file, + output_style="compressed", + output_filename_hint=output_file, + source_map_filename=source_map_file, + include_paths=[include_dir] + ) + except sass.CompileError as e: + print(f"Failed to compile {input_file}\n\n{e}") + exit(1) + else: + with open(output_file, "w") as out_fh: + out_fh.write(compiled) + + with open(source_map_file, "w") as map_fh: + map_fh.write(source_map) + + print(f"Compiled: {input_file} -> {output_file}") |