#!/usr/bin/env python3
import sass
import subprocess
import shutil
import os
from pathlib import Path
def runcmd ( cmd ) :
if os . name == " nt " :
return subprocess . check_output ( cmd , shell = True )
proc = subprocess . Popen ( cmd . split ( ) , stdout = subprocess . PIPE )
return proc . communicate ( )
local_path = Path ( __file__ ) . resolve ( ) . parent
for bsv in [ d for d in local_path . iterdir ( ) if " bs " in d . name ] :
scss = [ ( bsv / f " { bsv . name } -jf.scss " ) , ( bsv / f " { bsv . name } .scss " ) ]
css = [ ( bsv / f " { bsv . name } -jf.css " ) , ( bsv / f " { bsv . name } .css " ) ]
min_css = [
( bsv . parents [ 1 ] / " data " / " static " / f " { bsv . name } -jf.css " ) ,
( bsv . parents [ 1 ] / " data " / " static " / f " { bsv . name } .css " ) ,
]
for i in range ( 2 ) :
with open ( css [ i ] , " w " ) as f :
f . write (
sass . compile (
filename = str ( scss [ i ] . resolve ( ) ) ,
output_style = " expanded " ,
precision = 6 ,
omit_source_map_url = True ,
)
)
if css [ i ] . exists ( ) :
print ( f " { scss [ i ] . name } : Compiled. " )
# postcss only excepts forwards slashes? weird.
cssPath = str ( css [ i ] . resolve ( ) )
if os . name == " nt " :
cssPath = cssPath . replace ( " \\ " , " / " )
runcmd ( f " npx postcss { cssPath } --replace --use autoprefixer " )
print ( f " { scss [ i ] . name } : Prefixed. " )
runcmd (
f " npx cleancss --level 1 --format breakWith=lf --output { str ( min_css [ i ] . resolve ( ) ) } { str ( css [ i ] . resolve ( ) ) } "
)
if min_css [ i ] . exists ( ) :
print (
f " { scss [ i ] . name } : Minified and copied to { str ( min_css [ i ] . resolve ( ) ) } . "
)