UNPKG

logo.svg

Version:

Generate a svg logo, then you can embed it in you README.md

101 lines (74 loc) 1.79 kB
'use strict'; var fs = require('fs'); var path = require('path'); var isAbsolute = require('path-is-absolute'); var userHome = process.env.HOME; var fontDirs = { darwin: [ userHome + '/Library/Fonts/', '/Library/Fonts/', '/System/Library/Fonts/' ], freebsd: '', linux: userHome + '/.fonts/', sunos: '', win32: '' }; var preset = path.resolve(__dirname, '../fonts/'); var fontDir = fontDirs[process.platform]; exports.getFontPath = function (font) { var result = font; if (!result) { throw new Error('You must specify a font'); } // absolute path or url if (isAbsolute(result) || result.match(/^http(s)?:\/\//)) { return result; } result = path.resolve(process.cwd(), font); try { var stat = fs.statSync(result); if (stat && stat.isFile()) { return result; } } catch (e) { } if (font.indexOf('/') >=0) { throw new Error('Unknown font: ' + font); } result = doSearch(preset, font); if (result) { return result; } result = exports.searchFont(font); if (!result) { throw new Error('Unknown font: ' + font); } return result; }; exports.searchFont = function (font) { if (Array.isArray(fontDir)) { for (var i = 0, l = fontDir.length; i < l; i++) { var dir = fontDir[i]; var ret = doSearch(dir, font); if (ret) { return ret; } } } else { if (fontDir) { return doSearch(fontDir, font); } } }; function doSearch(dir, font) { var fonts = fs.readdirSync(dir); if (fonts && fonts.length) { font = font.toLowerCase(); for (var i = 0, l = fonts.length; i < l; i++) { var name = fonts[i]; if (name.toLowerCase() === font) { return path.join(dir, name); } } } }