├── .npmignore ├── .travis.yml ├── LICENSE ├── README.md ├── bin ├── cmd.js └── output ├── package.json └── tools └── build.js /.npmignore: -------------------------------------------------------------------------------- 1 | .github/ 2 | .travis.yml 3 | tools/ 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - lts/* 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Feross Aboukhadijeh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # feross-card [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] 2 | 3 | [travis-image]: https://img.shields.io/travis/feross/feross-card/master.svg 4 | [travis-url]: https://travis-ci.org/feross/feross-card 5 | [npm-image]: https://img.shields.io/npm/v/feross-card.svg 6 | [npm-url]: https://npmjs.org/package/feross-card 7 | [downloads-image]: https://img.shields.io/npm/dm/feross-card.svg 8 | [downloads-url]: https://npmjs.org/package/feross-card 9 | [standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg 10 | [standard-url]: https://standardjs.com 11 | 12 | ### It's me, Feross! 13 | 14 | ## usage 15 | 16 | To see my `npm` business card, just run: 17 | 18 | ``` 19 | npx feross-card 20 | ``` 21 | 22 | Inspired by [bitandbang](https://github.com/bnb/bitandbang)'s card! 23 | 24 | ## license 25 | 26 | MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org). 27 | -------------------------------------------------------------------------------- /bin/cmd.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict' 3 | 4 | const fs = require('fs') 5 | const path = require('path') 6 | const output = fs.readFileSync(path.join(__dirname, 'output'), 'utf8') 7 | 8 | console.log(output) 9 | -------------------------------------------------------------------------------- /bin/output: -------------------------------------------------------------------------------- 1 |  2 |  ╭──────────────────────────────────────────────────────────────────╮ 3 |  │ │ 4 |  │  Feross Aboukhadijeh / feross │ 5 |  │ │ 6 |  │  Work: Programmer, open source creator, mad scientist │ 7 |  │ Open Source: WebTorrent ❤ StandardJS ★ BitMidi 🎶 │ 8 |  │ │ 9 |  │  Twitter: https://twitter.com/feross │ 10 |  │  npm: https://npmjs.com/~feross │ 11 |  │  GitHub: https://github.com/feross │ 12 |  │  LinkedIn: https://linkedin.com/in/feross │ 13 |  │  Web: https://feross.org │ 14 |  │ │ 15 |  │  Card: npx feross-card │ 16 |  │ │ 17 |  ╰──────────────────────────────────────────────────────────────────╯ 18 |  -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "feross-card", 3 | "description": "It's me, Feross!", 4 | "version": "1.0.2", 5 | "author": { 6 | "name": "Feross Aboukhadijeh", 7 | "email": "feross@feross.org", 8 | "url": "https://feross.org" 9 | }, 10 | "bin": { 11 | "feross": "./bin/cmd.js" 12 | }, 13 | "bugs": { 14 | "url": "https://github.com/feross/feross-card/issues" 15 | }, 16 | "dependencies": {}, 17 | "devDependencies": { 18 | "boxen": "^4.2.0", 19 | "chalk": "^4.1.0", 20 | "standard": "*" 21 | }, 22 | "homepage": "https://github.com/feross/feross-card", 23 | "keywords": [ 24 | "business card", 25 | "card", 26 | "feross", 27 | "npm", 28 | "npm card", 29 | "npx", 30 | "npx card" 31 | ], 32 | "license": "MIT", 33 | "main": "./bin/cmd.js", 34 | "repository": { 35 | "type": "git", 36 | "url": "git://github.com/feross/feross-card.git" 37 | }, 38 | "scripts": { 39 | "build": "node ./tools/build.js", 40 | "start": "npm run build && ./bin/cmd.js", 41 | "test": "standard" 42 | }, 43 | "funding": [ 44 | { 45 | "type": "github", 46 | "url": "https://github.com/sponsors/feross" 47 | }, 48 | { 49 | "type": "patreon", 50 | "url": "https://www.patreon.com/feross" 51 | }, 52 | { 53 | "type": "consulting", 54 | "url": "https://feross.org/support" 55 | } 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /tools/build.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict' 3 | 4 | const chalk = require('chalk') 5 | const boxen = require('boxen') 6 | const fs = require('fs') 7 | const path = require('path') 8 | 9 | // Text + chalk definitions 10 | const data = { 11 | name: chalk.white(' Feross Aboukhadijeh'), 12 | handle: chalk.white('feross'), 13 | work: chalk.white('Programmer, open source creator, mad scientist'), 14 | opensource: chalk.white(`WebTorrent ${chalk.red('❤')} StandardJS ${chalk.yellow('★')} BitMidi ${chalk.magenta('🎶')}`), 15 | twitter: chalk.gray('https://twitter.com/') + chalk.cyan('feross'), 16 | npm: chalk.gray('https://npmjs.com/') + chalk.red('~feross'), 17 | github: chalk.gray('https://github.com/') + chalk.green('feross'), 18 | linkedin: chalk.gray('https://linkedin.com/in/') + chalk.blue('feross'), 19 | web: chalk.cyan('https://feross.org'), 20 | npx: chalk.red('npx') + ' ' + chalk.white('feross-card'), 21 | labelWork: chalk.white.bold(' Work:'), 22 | labelOpenSource: chalk.white.bold('Open Source:'), 23 | labelTwitter: chalk.white.bold(' Twitter:'), 24 | labelnpm: chalk.white.bold(' npm:'), 25 | labelGitHub: chalk.white.bold(' GitHub:'), 26 | labelLinkedIn: chalk.white.bold(' LinkedIn:'), 27 | labelWeb: chalk.white.bold(' Web:'), 28 | labelCard: chalk.white.bold(' Card:') 29 | } 30 | 31 | // Actual strings we're going to output 32 | const newline = '\n' 33 | const heading = `${data.name} / ${data.handle}` 34 | const working = `${data.labelWork} ${data.work}` 35 | const opensourcing = `${data.labelOpenSource} ${data.opensource}` 36 | const twittering = `${data.labelTwitter} ${data.twitter}` 37 | const npming = `${data.labelnpm} ${data.npm}` 38 | const githubing = `${data.labelGitHub} ${data.github}` 39 | const linkedining = `${data.labelLinkedIn} ${data.linkedin}` 40 | const webing = `${data.labelWeb} ${data.web}` 41 | const carding = `${data.labelCard} ${data.npx}` 42 | 43 | // Put all our output together into a single variable so we can use boxen effectively 44 | const output = heading + // data.name + data.handle 45 | newline + newline + // Add one whole blank line 46 | working + newline + // data.labelWork + data.work 47 | opensourcing + newline + newline + // data.labelOpenSource + data.opensource 48 | twittering + newline + // data.labelTwitter + data.twitter 49 | npming + newline + // data.labelnpm + data.npm 50 | githubing + newline + // data.labelGitHub + data.github 51 | linkedining + newline + // data.labelLinkedIn + data.linkedin 52 | webing + newline + newline + // data.labelWeb + data.web 53 | carding // data.labelCard + data.npx 54 | 55 | const opts = { 56 | padding: 1, 57 | margin: 1, 58 | borderStyle: 'round' 59 | } 60 | 61 | fs.writeFileSync(path.join(__dirname, '../bin/output'), chalk.green(boxen(output, opts))) 62 | --------------------------------------------------------------------------------