mirror of
https://github.com/all-contributors/cli.git
synced 2025-01-25 05:56:28 +00:00
Use git to find repo name and repo owner for init
This commit is contained in:
parent
0382e43089
commit
9459c823a7
2 changed files with 54 additions and 12 deletions
33
lib/init/git.js
Normal file
33
lib/init/git.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var spawn = require('child_process').spawn;
|
||||||
|
|
||||||
|
function getRemoteOriginData(cb) {
|
||||||
|
var output = '';
|
||||||
|
var git = spawn('git', 'config --get remote.origin.url'.split(' '));
|
||||||
|
git.stdout.on('data', function (data) {
|
||||||
|
output += data;
|
||||||
|
});
|
||||||
|
|
||||||
|
git.stderr.on('data', cb);
|
||||||
|
git.on('close', function () {
|
||||||
|
cb(null, output);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse(originUrl) {
|
||||||
|
var result = /\:(\w+)\/([A-Za-z0-9-_]+)/.exec(originUrl);
|
||||||
|
return {
|
||||||
|
projectOwner: result[1],
|
||||||
|
projectName: result[2]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function getRepoInfo(cb) {
|
||||||
|
getRemoteOriginData(function (error, originUrl) {
|
||||||
|
if (error) {
|
||||||
|
return cb(error);
|
||||||
|
}
|
||||||
|
return cb(null, parse(originUrl));
|
||||||
|
});
|
||||||
|
};
|
|
@ -3,6 +3,8 @@
|
||||||
var _ = require('lodash/fp');
|
var _ = require('lodash/fp');
|
||||||
var inquirer = require('inquirer');
|
var inquirer = require('inquirer');
|
||||||
|
|
||||||
|
var getRepoInfo = require('./git');
|
||||||
|
|
||||||
var questions = [{
|
var questions = [{
|
||||||
type: 'input',
|
type: 'input',
|
||||||
name: 'projectName',
|
name: 'projectName',
|
||||||
|
@ -44,6 +46,12 @@ var uniqueFiles = _.flow(
|
||||||
);
|
);
|
||||||
|
|
||||||
module.exports = function prompt(cb) {
|
module.exports = function prompt(cb) {
|
||||||
|
getRepoInfo(function (error, repoInfo) {
|
||||||
|
if (error) {
|
||||||
|
return cb(error);
|
||||||
|
}
|
||||||
|
questions[0].default = repoInfo.projectName;
|
||||||
|
questions[1].default = repoInfo.projectOwner;
|
||||||
inquirer.prompt(questions, function treatAnswers(answers) {
|
inquirer.prompt(questions, function treatAnswers(answers) {
|
||||||
var config = {
|
var config = {
|
||||||
projectName: answers.projectName,
|
projectName: answers.projectName,
|
||||||
|
@ -58,4 +66,5 @@ module.exports = function prompt(cb) {
|
||||||
badgeFile: answers.badgeFile
|
badgeFile: answers.badgeFile
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue