all-contributors-cli
Advanced tools
Comparing version 2.0.0-beta6 to 2.0.0-beta7
30
cli.js
@@ -7,6 +7,7 @@ #!/usr/bin/env node | ||
var path = require('path'); | ||
var yargs = require('yargs'); | ||
var init = require('./lib/init'); | ||
var generate = require('./lib/generate'); | ||
var markdown = require('./lib/markdown'); | ||
var markdown = require('./lib/util').markdown; | ||
var updateContributors = require('./lib/contributors'); | ||
@@ -17,3 +18,3 @@ | ||
var argv = require('yargs') | ||
var argv = yargs | ||
.help('help') | ||
@@ -27,3 +28,2 @@ .alias('h', 'help') | ||
.usage('Usage: $0 init') | ||
.demand(2) | ||
.default('files', ['README.md']) | ||
@@ -61,2 +61,15 @@ .default('contributorsPerLine', 7) | ||
function addContribution(argv, cb) { | ||
var username = argv._[1]; | ||
var contributions = argv._[2]; | ||
// Add or update contributor in the config file | ||
updateContributors(argv, username, contributions, function (error, contributors) { | ||
if (error) { | ||
return onError(error); | ||
} | ||
argv.contributors = contributors; | ||
startGeneration(argv, cb); | ||
}); | ||
} | ||
function onError(error) { | ||
@@ -75,12 +88,3 @@ if (error) { | ||
} else if (command === 'add') { | ||
var username = argv._[1]; | ||
var contributions = argv._[2]; | ||
// Add or update contributor in the config file | ||
updateContributors(argv, username, contributions, function (error, contributors) { | ||
if (error) { | ||
return onError(error); | ||
} | ||
argv.contributors = contributors; | ||
startGeneration(argv, onError); | ||
}); | ||
addContribution(argv, onError); | ||
} |
@@ -9,4 +9,3 @@ 'use strict'; | ||
function formatContributions(options, existing, newTypes) { | ||
var types = newTypes.split(','); | ||
function formatContributions(options, existing, types) { | ||
if (options.url) { | ||
@@ -13,0 +12,0 @@ return (existing || []).concat(types.map(function (type) { |
@@ -54,3 +54,3 @@ import test from 'ava'; | ||
const username = 'login3'; | ||
const contributions = 'doc'; | ||
const contributions = ['doc']; | ||
@@ -76,3 +76,3 @@ return addContributor(options, username, contributions, mockInfoFetcher, function (error, contributors) { | ||
const username = 'login3'; | ||
const contributions = 'doc'; | ||
const contributions = ['doc']; | ||
options.url = 'www.foo.bar'; | ||
@@ -99,3 +99,3 @@ | ||
const username = 'login2'; | ||
const contributions = 'blog,code'; | ||
const contributions = ['blog', 'code']; | ||
@@ -112,4 +112,3 @@ return addContributor(options, username, contributions, mockInfoFetcher, function (error, contributors) { | ||
const username = 'login1'; | ||
const contributions = 'bug'; | ||
const contributions = ['bug']; | ||
return addContributor(options, username, contributions, mockInfoFetcher, function (error, contributors) { | ||
@@ -135,3 +134,3 @@ t.notOk(error); | ||
const username = 'login1'; | ||
const contributions = 'bug'; | ||
const contributions = ['bug']; | ||
options.url = 'www.foo.bar'; | ||
@@ -138,0 +137,0 @@ |
'use strict'; | ||
var util = require('../util'); | ||
var add = require('./add'); | ||
var github = require('./github'); | ||
var configFile = require('../configFile'); | ||
var prompt = require('./prompt'); | ||
module.exports = function addContributor(options, username, contributions, cb) { | ||
add(options, username, contributions, github, function (error, contributors) { | ||
if (error) { | ||
return cb(error); | ||
} | ||
configFile.writeContributors(options.config, contributors, function (error) { | ||
return cb(error, contributors); | ||
prompt(options, username, contributions, function (answers) { | ||
add(options, answers.username, answers.contributions, github, function (error, contributors) { | ||
if (error) { | ||
return cb(error); | ||
} | ||
util.configFile.writeContributors(options.config, contributors, function (error) { | ||
return cb(error, contributors); | ||
}); | ||
}); | ||
}); | ||
}; |
'use strict'; | ||
var _ = require('lodash/fp'); | ||
var util = require('../util'); | ||
var linkToCommits = 'https://github.com/<%= options.projectOwner %>/<%= options.projectName %>/commits?author=<%= contributor.login %>'; | ||
var linkToIssues = 'https://github.com/<%= options.projectOwner %>/<%= options.projectName %>/issues?q=author%3A<%= contributor.login %>'; | ||
var linkTemplate = _.template('[<%= symbol %>](<%= url %>)'); | ||
var defaultTypes = { | ||
blog: {symbol: '📝'}, | ||
bug: { | ||
symbol: '🐛', | ||
link: linkToIssues | ||
}, | ||
code: { | ||
symbol: '💻', | ||
link: linkToCommits | ||
}, | ||
design: {symbol: '🎨'}, | ||
doc: { | ||
symbol: '📖', | ||
link: linkToCommits | ||
}, | ||
example: {symbol: '💡'}, | ||
plugin: {symbol: '🔌'}, | ||
question: {symbol: '❓'}, | ||
review: {symbol: '👀'}, | ||
talk: {symbol: '📢'}, | ||
test: { | ||
symbol: '⚠️', | ||
link: linkToCommits | ||
}, | ||
translation: {symbol: '🌍'}, | ||
tool: {symbol: '🔧'}, | ||
tutorial: {symbol: '✅'}, | ||
video: {symbol: '📹'} | ||
}; | ||
function getType(options, contribution) { | ||
var types = _.assign(defaultTypes, options.types); | ||
var types = util.contributionTypes(options); | ||
return types[contribution.type || contribution]; | ||
@@ -42,0 +11,0 @@ } |
import test from 'ava'; | ||
import contributors from './fixtures/contributors.json'; | ||
import formatContributionType from './formatContributionType'; | ||
import contributors from './fixtures/contributors.json'; | ||
@@ -5,0 +5,0 @@ const fixtures = () => { |
'use strict'; | ||
var _ = require('lodash/fp'); | ||
var formatContributionType = require('./formatContributionType'); | ||
@@ -6,0 +5,0 @@ |
'use strict'; | ||
var _ = require('lodash/fp'); | ||
var injectContentBetween = require('../util').markdown.injectContentBetween; | ||
var formatBadge = require('./formatBadge'); | ||
var formatContributor = require('./formatContributor'); | ||
var injectContentBetween = require('../markdown').injectContentBetween; | ||
@@ -8,0 +8,0 @@ var badgeRegex = /\[\!\[All Contributors\]\([a-zA-Z0-9\-\.\/_\:\?=]+\)\]\(\#\w+\)/; |
import test from 'ava'; | ||
import contributors from './fixtures/contributors.json'; | ||
import generate from './'; | ||
import contributors from './fixtures/contributors.json'; | ||
@@ -5,0 +5,0 @@ function fixtures() { |
@@ -5,7 +5,7 @@ 'use strict'; | ||
var series = require('async/series'); | ||
var util = require('../util'); | ||
var prompt = require('./prompt'); | ||
var configFile = require('../configFile'); | ||
var markdown = require('../markdown'); | ||
var initContent = require('./initContent'); | ||
var configFile = util.configFile; | ||
var markdown = util.markdown; | ||
@@ -12,0 +12,0 @@ function injectInFile(file, fn, cb) { |
'use strict'; | ||
var _ = require('lodash/fp'); | ||
var injectContentBetween = require('../markdown').injectContentBetween; | ||
var injectContentBetween = require('../util').markdown.injectContentBetween; | ||
@@ -6,0 +6,0 @@ var badgeContent = '[![All Contributors](https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square)](#contributors)'; |
@@ -5,5 +5,4 @@ 'use strict'; | ||
var inquirer = require('inquirer'); | ||
var getRepoInfo = require('../util').git; | ||
var getRepoInfo = require('./git'); | ||
var questions = [{ | ||
@@ -10,0 +9,0 @@ type: 'input', |
{ | ||
"name": "all-contributors-cli", | ||
"version": "2.0.0-beta6", | ||
"version": "2.0.0-beta7", | ||
"description": "Tool to easily add recognition for new contributors", | ||
@@ -11,4 +11,4 @@ "bin": { | ||
"test": "npm run lint && npm run test-unit", | ||
"test-unit": "ava \"lib/**/*.test.js\"", | ||
"test-unit:w": "npm run test-unit -- --watch" | ||
"test-unit": "ava", | ||
"test-unit:w": "ava --watch" | ||
}, | ||
@@ -42,2 +42,7 @@ "repository": { | ||
}, | ||
"ava": { | ||
"files": [ | ||
"lib/**/*.test.js" | ||
] | ||
}, | ||
"xo": { | ||
@@ -44,0 +49,0 @@ "space": 2, |
43535
30
1128