mirror of
https://github.com/zhigang1992/react-native-vector-icons.git
synced 2026-01-12 09:24:14 +08:00
Move CLI tools to bin folder and refactor to es6
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
#!/usr/bin/env node
|
||||
'use strict';
|
||||
/* eslint-disable no-console */
|
||||
|
||||
var argv = require('yargs')
|
||||
const _ = require('lodash');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const generateIconSetFromCss = require('../lib/generate-icon-set-from-css');
|
||||
const argv = require('yargs')
|
||||
.usage(
|
||||
'Usage: $0 [options] path/to/styles.css \nFor default template please provide --componentName and --fontFamily'
|
||||
)
|
||||
@@ -9,7 +13,7 @@ var argv = require('yargs')
|
||||
.default('p', '.icon-')
|
||||
.describe('p', 'CSS selector prefix')
|
||||
.alias('p', 'prefix')
|
||||
.default('t', __dirname + '/templates/bundled-icon-set.tpl')
|
||||
.default('t', path.resolve(__dirname, '..', 'templates/bundled-icon-set.tpl'))
|
||||
.describe('t', 'Template in lodash format')
|
||||
.alias('t', 'template')
|
||||
.describe('o', 'Save output to file, defaults to STDOUT')
|
||||
@@ -17,21 +21,17 @@ var argv = require('yargs')
|
||||
.describe('g', 'Save glyphmap JSON to file')
|
||||
.alias('g', 'glyphmap').argv;
|
||||
|
||||
var _ = require('lodash');
|
||||
var fs = require('fs');
|
||||
var generateIconSetFromCss = require('./lib/generate-icon-set-from-css');
|
||||
|
||||
var template;
|
||||
let template;
|
||||
if (argv.template) {
|
||||
template = fs.readFileSync(argv.template, { encoding: 'utf8' });
|
||||
}
|
||||
|
||||
var data = _.omit(
|
||||
const data = _.omit(
|
||||
argv,
|
||||
'_ $0 o output p prefix t template g glyphmap'.split(' ')
|
||||
);
|
||||
|
||||
var content = generateIconSetFromCss(argv._, argv.prefix, template, data);
|
||||
const content = generateIconSetFromCss(argv._, argv.prefix, template, data);
|
||||
if (argv.output) {
|
||||
fs.writeFileSync(argv.output, content);
|
||||
} else {
|
||||
@@ -1,12 +1,15 @@
|
||||
#!/usr/bin/env node
|
||||
'use strict';
|
||||
/* eslint-disable no-console */
|
||||
|
||||
var argv = require('yargs')
|
||||
const _ = require('lodash');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const argv = require('yargs')
|
||||
.usage(
|
||||
'Usage: $0 [options] path/to/codepoints \nFor default template please provide --componentName and --fontFamily'
|
||||
)
|
||||
.demand(1)
|
||||
.default('t', __dirname + '/templates/bundled-icon-set.tpl')
|
||||
.default('t', path.resolve(__dirname, '..', 'templates/bundled-icon-set.tpl'))
|
||||
.describe('t', 'Template in lodash format')
|
||||
.alias('t', 'template')
|
||||
.describe('o', 'Save output to file, defaults to STDOUT')
|
||||
@@ -14,33 +17,32 @@ var argv = require('yargs')
|
||||
.describe('g', 'Save glyphmap JSON to file')
|
||||
.alias('g', 'glyphmap').argv;
|
||||
|
||||
var _ = require('lodash');
|
||||
var fs = require('fs');
|
||||
|
||||
var extractGlyphMapFromCodepoints = function(fileName) {
|
||||
var codepoints = fs.readFileSync(fileName, { encoding: 'utf8' }).split('\n');
|
||||
var glyphMap = {};
|
||||
codepoints.forEach(function(point) {
|
||||
var parts = point.split(' ');
|
||||
function extractGlyphMapFromCodepoints(fileName) {
|
||||
const codepoints = fs
|
||||
.readFileSync(fileName, { encoding: 'utf8' })
|
||||
.split('\n');
|
||||
const glyphMap = {};
|
||||
codepoints.forEach(point => {
|
||||
const parts = point.split(' ');
|
||||
if (parts.length === 2) {
|
||||
glyphMap[parts[0].replace(/_/g, '-')] = parseInt(parts[1], 16);
|
||||
}
|
||||
});
|
||||
|
||||
return glyphMap;
|
||||
};
|
||||
}
|
||||
|
||||
var template;
|
||||
let template;
|
||||
if (argv.template) {
|
||||
template = fs.readFileSync(argv.template, { encoding: 'utf8' });
|
||||
}
|
||||
|
||||
var data = _.omit(argv, '_ $0 o output t template g glyphmap'.split(' '));
|
||||
var glyphMap = extractGlyphMapFromCodepoints(argv._[0]);
|
||||
let data = _.omit(argv, '_ $0 o output t template g glyphmap'.split(' '));
|
||||
const glyphMap = extractGlyphMapFromCodepoints(argv._[0]);
|
||||
|
||||
var content = JSON.stringify(glyphMap, null, ' ');
|
||||
let content = JSON.stringify(glyphMap, null, ' ');
|
||||
if (template) {
|
||||
var compiled = _.template(template);
|
||||
const compiled = _.template(template);
|
||||
data = data || {};
|
||||
data.glyphMap = content;
|
||||
content = compiled(data);
|
||||
@@ -1 +1,3 @@
|
||||
/* eslint-disable import/no-unresolved */
|
||||
|
||||
export * from 'react-native-desktop';
|
||||
|
||||
24
package.json
24
package.json
@@ -4,21 +4,21 @@
|
||||
"description": "Customizable Icons for React Native with support for NavBar/TabBar/ToolbarAndroid, image source and full styling.",
|
||||
"main": "index.js",
|
||||
"bin": {
|
||||
"generate-icon": "./generate-icon.js"
|
||||
"generate-icon": "./bin/generate-icon.js"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "eslint index.js lib/{create-icon-set-from-fontello,create-icon-set-from-icomoon,create-icon-set,icon-button,tab-bar-item-ios,toolbar-android}.js",
|
||||
"test": "eslint index.js {bin,lib}/*.js",
|
||||
"build": "rm -rf {Fonts,Entypo.js,EvilIcons.js,FontAwesome.js,Foundation.js,Ionicons.js,MaterialIcons.js,MaterialCommunityIcons.js,Octicons.js,Zocial.js,SimpleLineIcons.js,glyphmaps} && mkdir Fonts glyphmaps && npm run build-entypo && npm run build-evilicons && npm run build-fontawesome && npm run build-foundation && npm run build-ionicons && npm run build-materialicons && npm run build-materialcommunityicons && npm run build-octicons && npm run build-zocial && npm run build-simplelineicons",
|
||||
"build-entypo": "mkdir -p tmp/svg && curl https://dl.dropboxusercontent.com/u/4339492/entypo.zip > tmp/entypo.zip && unzip -j tmp/entypo.zip *.svg -x __MACOSX/* -d tmp/svg && fontcustom compile tmp/svg -o tmp -n Entypo -t css -h && node generate-icon tmp/Entypo.css --componentName=Entypo --fontFamily=Entypo --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Entypo.json > Entypo.js && cp tmp/Entypo.ttf Fonts && rm -rf {tmp,.fontcustom-manifest.json}",
|
||||
"build-evilicons": "fontcustom compile node_modules/evil-icons/assets/icons -o tmp -n EvilIcons -t css -h && node generate-icon tmp/EvilIcons.css --prefix=.icon-ei- --componentName=EvilIcons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/EvilIcons.json --fontFamily=EvilIcons > EvilIcons.js && cp tmp/EvilIcons.ttf Fonts && rm -rf {tmp,.fontcustom-manifest.json}",
|
||||
"build-fontawesome": "node generate-icon node_modules/font-awesome/css/font-awesome.css --prefix=.fa- --componentName=FontAwesome --fontFamily=FontAwesome --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/FontAwesome.json > FontAwesome.js && cp node_modules/font-awesome/fonts/fontawesome-webfont.ttf Fonts/FontAwesome.ttf",
|
||||
"build-foundation": "node generate-icon bower_components/foundation-icon-fonts/foundation-icons.css --prefix=.fi- --componentName=Foundation --fontFamily=fontcustom --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Foundation.json > Foundation.js && cp bower_components/foundation-icon-fonts/foundation-icons.ttf Fonts/Foundation.ttf",
|
||||
"build-ionicons": "node generate-icon node_modules/ionicons/dist/css/ionicons.css --prefix=.ion- --componentName=Ionicons --fontFamily=Ionicons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Ionicons.json > Ionicons.js && cp node_modules/ionicons/dist/fonts/ionicons.ttf Fonts/Ionicons.ttf",
|
||||
"build-materialicons": "node generate-material-icons node_modules/material-design-icons/iconfont/codepoints --componentName=MaterialIcons --fontFamily='Material Icons' --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/MaterialIcons.json > MaterialIcons.js && cp node_modules/material-design-icons/iconfont/MaterialIcons-Regular.ttf Fonts/MaterialIcons.ttf",
|
||||
"build-materialcommunityicons": "node generate-icon node_modules/mdi/css/materialdesignicons.css --prefix=.mdi- --componentName=MaterialCommunityIcons --fontFamily='Material Design Icons' --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/MaterialCommunityIcons.json > MaterialCommunityIcons.js && cp node_modules/mdi/fonts/materialdesignicons-webfont.ttf Fonts/MaterialCommunityIcons.ttf",
|
||||
"build-octicons": "fontcustom compile node_modules/octicons/build/svg -o tmp -n Octicons -t css -h && node generate-icon tmp/Octicons.css --prefix=.icon- --componentName=Octicons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Octicons.json --fontFamily=Octicons > Octicons.js && cp tmp/Octicons.ttf Fonts && rm -rf {tmp,.fontcustom-manifest.json}",
|
||||
"build-zocial": "node generate-icon bower_components/css-social-buttons/css/zocial.css --prefix=.zocial. --componentName=Zocial --fontFamily=zocial --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Zocial.json > Zocial.js && cp bower_components/css-social-buttons/css/zocial.ttf Fonts/Zocial.ttf",
|
||||
"build-simplelineicons": "node generate-icon bower_components/simple-line-icons/css/simple-line-icons.css --prefix=.icon- --componentName=SimpleLineIcons --fontFamily=simple-line-icons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/SimpleLineIcons.json > SimpleLineIcons.js && cp bower_components/simple-line-icons/fonts/Simple-Line-Icons.ttf Fonts/SimpleLineIcons.ttf"
|
||||
"build-entypo": "mkdir -p tmp/svg && curl https://dl.dropboxusercontent.com/u/4339492/entypo.zip > tmp/entypo.zip && unzip -j tmp/entypo.zip *.svg -x __MACOSX/* -d tmp/svg && fontcustom compile tmp/svg -o tmp -n Entypo -t css -h && node bin/generate-icon tmp/Entypo.css --componentName=Entypo --fontFamily=Entypo --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Entypo.json > Entypo.js && cp tmp/Entypo.ttf Fonts && rm -rf {tmp,.fontcustom-manifest.json}",
|
||||
"build-evilicons": "fontcustom compile node_modules/evil-icons/assets/icons -o tmp -n EvilIcons -t css -h && node bin/generate-icon tmp/EvilIcons.css --prefix=.icon-ei- --componentName=EvilIcons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/EvilIcons.json --fontFamily=EvilIcons > EvilIcons.js && cp tmp/EvilIcons.ttf Fonts && rm -rf {tmp,.fontcustom-manifest.json}",
|
||||
"build-fontawesome": "node bin/generate-icon node_modules/font-awesome/css/font-awesome.css --prefix=.fa- --componentName=FontAwesome --fontFamily=FontAwesome --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/FontAwesome.json > FontAwesome.js && cp node_modules/font-awesome/fonts/fontawesome-webfont.ttf Fonts/FontAwesome.ttf",
|
||||
"build-foundation": "node bin/generate-icon bower_components/foundation-icon-fonts/foundation-icons.css --prefix=.fi- --componentName=Foundation --fontFamily=fontcustom --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Foundation.json > Foundation.js && cp bower_components/foundation-icon-fonts/foundation-icons.ttf Fonts/Foundation.ttf",
|
||||
"build-ionicons": "node bin/generate-icon node_modules/ionicons/dist/css/ionicons.css --prefix=.ion- --componentName=Ionicons --fontFamily=Ionicons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Ionicons.json > Ionicons.js && cp node_modules/ionicons/dist/fonts/ionicons.ttf Fonts/Ionicons.ttf",
|
||||
"build-materialicons": "node bin/generate-material-icons node_modules/material-design-icons/iconfont/codepoints --componentName=MaterialIcons --fontFamily='Material Icons' --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/MaterialIcons.json > MaterialIcons.js && cp node_modules/material-design-icons/iconfont/MaterialIcons-Regular.ttf Fonts/MaterialIcons.ttf",
|
||||
"build-materialcommunityicons": "node bin/generate-icon node_modules/mdi/css/materialdesignicons.css --prefix=.mdi- --componentName=MaterialCommunityIcons --fontFamily='Material Design Icons' --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/MaterialCommunityIcons.json > MaterialCommunityIcons.js && cp node_modules/mdi/fonts/materialdesignicons-webfont.ttf Fonts/MaterialCommunityIcons.ttf",
|
||||
"build-octicons": "fontcustom compile node_modules/octicons/build/svg -o tmp -n Octicons -t css -h && node bin/generate-icon tmp/Octicons.css --prefix=.icon- --componentName=Octicons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Octicons.json --fontFamily=Octicons > Octicons.js && cp tmp/Octicons.ttf Fonts && rm -rf {tmp,.fontcustom-manifest.json}",
|
||||
"build-zocial": "node bin/generate-icon bower_components/css-social-buttons/css/zocial.css --prefix=.zocial. --componentName=Zocial --fontFamily=zocial --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/Zocial.json > Zocial.js && cp bower_components/css-social-buttons/css/zocial.ttf Fonts/Zocial.ttf",
|
||||
"build-simplelineicons": "node bin/generate-icon bower_components/simple-line-icons/css/simple-line-icons.css --prefix=.icon- --componentName=SimpleLineIcons --fontFamily=simple-line-icons --template=templates/separated-icon-set.tpl --glyphmap=glyphmaps/SimpleLineIcons.json > SimpleLineIcons.js && cp bower_components/simple-line-icons/fonts/Simple-Line-Icons.ttf Fonts/SimpleLineIcons.ttf"
|
||||
},
|
||||
"keywords": [
|
||||
"react-native",
|
||||
|
||||
Reference in New Issue
Block a user