| /*! |
| * glob-base <https://github.com/jonschlinkert/glob-base> |
| * |
| * Copyright (c) 2015, Jon Schlinkert. |
| * Licensed under the MIT License. |
| */ |
| |
| 'use strict'; |
| |
| var path = require('path'); |
| var parent = require('glob-parent'); |
| var isGlob = require('is-glob'); |
| |
| module.exports = function globBase(pattern) { |
| if (typeof pattern !== 'string') { |
| throw new TypeError('glob-base expects a string.'); |
| } |
| |
| var res = {}; |
| res.base = parent(pattern); |
| res.isGlob = isGlob(pattern); |
| |
| if (res.base !== '.') { |
| res.glob = pattern.substr(res.base.length); |
| if (res.glob.charAt(0) === '/') { |
| res.glob = res.glob.substr(1); |
| } |
| } else { |
| res.glob = pattern; |
| } |
| |
| if (!res.isGlob) { |
| res.base = dirname(pattern); |
| res.glob = res.base !== '.' |
| ? pattern.substr(res.base.length) |
| : pattern; |
| } |
| |
| if (res.glob.substr(0, 2) === './') { |
| res.glob = res.glob.substr(2); |
| } |
| if (res.glob.charAt(0) === '/') { |
| res.glob = res.glob.substr(1); |
| } |
| return res; |
| }; |
| |
| function dirname(glob) { |
| if (glob.slice(-1) === '/') return glob; |
| return path.dirname(glob); |
| } |