Compilar arquivos .less e .coffee automaticamente

Este pequeno script python usa watchdog(e sh) para monitorar seu diretório de código (recursivamente) e construir menos e arquivos CoffeeScript após a edição.

Basta iniciá-lo da pasta relevante e ele funcionará em segundo plano.

Deve ser trivial adicionar minificação (e linting, mas sugiro linting no editor) ao processo.

#!/usr/bin/env python2

import watchdog.events
import watchdog.observers
import sh
import time
import os

# Detach
if os.fork(): os._exit(0)

coffee
= sh.coffee.bake('-c')
less
= sh.lessc

class Handler(watchdog.events.PatternMatchingEventHandler):
def __init__(self):
watchdog
.events.PatternMatchingEventHandler.__init__(self, patterns=['*.less', '*.coffee'],
ignore_directories
=True, case_sensitive=False)

def on_modified(self, event):
if event.src_path.lower().endswith('.less'):
less
(event.src_path, event.src_path[:-5] + '.css')
if event.src_path.lower().endswith('.coffee'):
coffee
(event.src_path)

on_created
= on_modified

if __name__ == "__main__":
event_handler
= Handler()
observer
= watchdog.observers.Observer()
observer
.schedule(event_handler, path='.', recursive=True)
observer
.start()
try:
while True:
time
.sleep(1)
except KeyboardInterrupt:
observer
.stop()
observer
.join()

Requer coffee( npm install coffee-script) e lessc( npm install less).

Deve ser compatível com Mac OS X e Linux, pelo menos, BSD e Win … talvez.