Skip to content

Commit

Permalink
Change dir replacement to dirname and add basename
Browse files Browse the repository at this point in the history
  • Loading branch information
chbrown committed Aug 26, 2012
1 parent d2305c6 commit 0687858
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
21 changes: 14 additions & 7 deletions README.md
Expand Up @@ -6,22 +6,29 @@ some specified action in response.
Settings are stored in `~/.less-watch` Settings are stored in `~/.less-watch`


If some file does not exist, the script will continue to try the other files, If some file does not exist, the script will continue to try the other files,
and retry any inaccessible file every 60 seconds. This is and retry any inaccessible file every 60 seconds. I do a lot of development on
remote servers, so the files are only accessible when I have sshfs connected,
but I don't want to have to run something to tell my LESS compiler that it
should retry the filepath in question.

(This particular feature is not actually in 0.0.1, by the way. It's planned.)


## `~/.less-watch` format ## `~/.less-watch` format


Each line has a file on the left of a colon, and a command on the right. Each line has a glob (or simple file) on the left of a colon, and a command on
the right.


The command on the right will have the following keywords available: The command on the right will have the following keywords available:


- {file}, the fullpath of the matching file (usually just the file to the left - {file}, the fullpath of the matching file (usually just the string to the left
of the colon) of the colon).
- {dir}, the directory containing {file} - {basename}, the shortname of {file}, without path or extension.
- {dirname}, the directory containing {file}.


## `~/.less-watch` example ## `~/.less-watch` example


/Users/chbrown/work/mailmaster/static/css/site.less: cd {dir} && lessc -C site.less site.css /Users/chbrown/work/mailmaster/static/css/site.less: cd {dirname} && lessc -C site.less site.css
/Volumes/sshfs_drive/app4/static/master.less: cd {dir} && lessc -C master.less master.css /Volumes/sshfs_drive/app4/static/*.less: cd {dirname} && lessc -C {basename}.less {basename}.css


## License ## License


Expand Down
6 changes: 5 additions & 1 deletion less-watch
Expand Up @@ -38,7 +38,11 @@ function watch(globpath, action) {
// for single files, filepaths will just be one file: the exact match // for single files, filepaths will just be one file: the exact match
filepaths.forEach(function(filepath) { filepaths.forEach(function(filepath) {
// for each file, decide on its command // for each file, decide on its command
var command = action.replace(/\{file\}/g, filepath).replace(/\{dir\}/g, path.dirname(filepath)); var ext = filepath.match(/(\.\w+)?$/)[1],
command = action.
replace(/\{file\}/g, filepath).
replace(/\{basename\}/g, path.basename(filepath, ext)).
replace(/\{dirname\}/g, path.dirname(filepath));
// save the filepath so that we can unwatch it easily when reloading, and start the watch // save the filepath so that we can unwatch it easily when reloading, and start the watch
watched_filepaths.push(filepath); watched_filepaths.push(filepath);
fs.watchFile(filepath, {interval: 250}, function(curr, prev) { fs.watchFile(filepath, {interval: 250}, function(curr, prev) {
Expand Down

0 comments on commit 0687858

Please sign in to comment.