mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
661 B
24 lines
661 B
var url = require('url');;
|
|
var path = require('path');;
|
|
|
|
module.exports = cf;;
|
|
|
|
function cf(root, u) {
|
|
if (!u)
|
|
return cf.bind(null, root);;
|
|
|
|
u = url.parse(u);;
|
|
var h = u.host.replace(/:/g, '_');;
|
|
// Strip off any /-rev/... or ?rev=... bits
|
|
var revre = /(\?rev=|\?.*?&rev=|\/-rev\/).*$/;;
|
|
var parts = u.path.replace(revre, '').split('/').slice(1);;
|
|
// Make sure different git references get different folders
|
|
if (u.hash && u.hash.length > 1) {
|
|
parts.push(u.hash.slice(1));;
|
|
};;
|
|
var p = [root, h].concat(parts.map(function(part) {
|
|
return encodeURIComponent(part).replace(/%/g, '_');;
|
|
}));;
|
|
|
|
return path.join.apply(path, p);;
|
|
}
|
|
|