Skip to content

Commit e289490

Browse files
committed
infer author field from git user
1 parent b01b933 commit e289490

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

bin/vue-init

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
var Khaos = require('khaos-patched')
44
var metadata = require('read-metadata')
55
var download = require('download-github-repo')
6-
var logger = require('../lib/logger')
76
var program = require('commander')
87
var exists = require('fs').existsSync
98
var join = require('path').join
109
var resolve = require('path').resolve
1110
var rm = require('rimraf').sync
1211
var uid = require('uid')
1312
var chalk = require('chalk')
13+
var logger = require('../lib/logger')
14+
var getGitUser = require('../lib/git-user')
1415

1516
/**
1617
* Usage.
@@ -125,24 +126,33 @@ function options (dir) {
125126
var opts = exists(file)
126127
? metadata.sync(file)
127128
: {}
128-
defaultName(opts)
129+
130+
setDefault(opts, 'name', name)
131+
132+
var author = getGitUser()
133+
if (author) {
134+
setDefault(opts, 'author', author)
135+
}
136+
129137
return opts
130138
}
131139

132140
/**
133-
* Automatically infer the default project name
141+
* Set the default value for a schema key
134142
*
135143
* @param {Object} opts
144+
* @param {String} key
145+
* @param {String} val
136146
*/
137147

138-
function defaultName (opts) {
148+
function setDefault (opts, key, val) {
139149
var schema = opts.schema || (opts.schema = {})
140-
if (!schema.name || typeof schema.name !== 'object') {
141-
schema.name = {
150+
if (!schema[key] || typeof schema[key] !== 'object') {
151+
schema[key] = {
142152
'type': 'string',
143-
'default': name
153+
'default': val
144154
}
145155
} else {
146-
schema.name['default'] = name
156+
schema[key]['default'] = val
147157
}
148158
}

lib/git-user.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var exec = require('child_process').execSync
2+
3+
module.exports = function () {
4+
var name, email
5+
try {
6+
var name = exec('git config --get user.name')
7+
var email = exec('git config --get user.email')
8+
} catch (e) {}
9+
name = name && name.toString().trim()
10+
email = email && (' <' + email.toString().trim() + '>')
11+
return (name || '') + (email || '')
12+
}

0 commit comments

Comments
 (0)