#!/usr/bin/env php false, 'relativeUrls' => false); $silent = false; $watch = false; $rootpath = ''; // Check for arguments array_shift($argv); if (!count($argv)) { $argv[] = '-h'; } // parse arguments foreach ($argv as $key => $arg) { if (preg_match('/^--?([a-z][0-9a-z-]*)(?:=([^\s]+))?$/i', $arg, $matches)) { $option = $matches[1]; $value = isset($matches[2]) ? $matches[2] : false; unset($argv[$key]); switch ($option) { case 'h': case 'help': echo << 1) { $output = array_pop($argv); $inputs = $argv; } else { $inputs = $argv; $output = false; } if (!count($inputs)) { echo("lessc: no input files\n"); exit; } if ($watch) { if (!$output) { echo("lessc: you must specify the output file if --watch is given\n"); exit; } $lastAction = 0; echo("lessc: watching input files\n"); while (1) { clearstatcache(); $updated = false; foreach ($inputs as $input) { if ($input == '-') { if (count($inputs) == 1) { echo("lessc: during watching files is not possible to watch stdin\n"); exit; } else { continue; } } if (filemtime($input) > $lastAction) { $updated = true; break; } } if ($updated) { $lastAction = time(); $parser = new Less_Parser($env); foreach ($inputs as $input) { try { $parser->parseFile($input, $rootpath); } catch (Exception $e) { echo("lessc: " . $e->getMessage() . " \n"); continue; // Invalid processing } } file_put_contents($output, $parser->getCss()); echo("lessc: output file recompiled\n"); } sleep(1); } } else { $parser = new Less_Parser($env); foreach ($inputs as $input) { if ($input == '-') { $content = file_get_contents('php://stdin'); $parser->parse($content); } else { try { $parser->parseFile($input); } catch (Exception $e) { if (!$silent) { echo("lessc: " . ((string)$e) . " \n"); } } } } if ($output) { file_put_contents($output, $parser->getCss()); } else { echo $parser->getCss(); } }