Skip to content

Instantly share code, notes, and snippets.

@realistschuckle
Last active August 29, 2015 14:20
Show Gist options
  • Save realistschuckle/0157389231c528015383 to your computer and use it in GitHub Desktop.
Save realistschuckle/0157389231c528015383 to your computer and use it in GitHub Desktop.
An options builder for gulp-newer that understands the output of gulp-hash
function newerOptionsForHashSuffixedFiles(dest, ext) {
var re = new RegExp('\\' + ext + '$');
var replacement = '-[^-]*' + ext;
return {
dest: dest,
ext: ext,
map: function(src) {
var d = join(process.cwd(), dest, src);
d = d.replace(re, replacement);
var result = glob.sync(d);
if (result.length === 0) {
return '';
}
if (result.length === 1) {
return join(dirname(src), basename(result[0]));
}
var newest = null;
for (var i = 0; i < result.length; i += 1) {
try {
var stat = fs.statSync(result[i]);
} catch (e) {
continue;
}
if (newest === null || result[newest].mtime < stat.mtime) {
newest = i;
}
}
return join(dirname(src), basename(result[newest]));
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment