tipi-cli
Version:
Project scaffolding for the entitled JavaScript developer
44 lines (38 loc) • 1.01 kB
JavaScript
const getEmail = require('git-user-email');
const getUser = require('github-username');
const getUsername = require('username');
const camelCase = require('lodash').camelCase;
const merge = require('lodash').merge;
module.exports = info;
function info(name, flags) {
const email = getEmail();
const safeName = camelCase(name);
const explicit = {
author: flags.author,
email: flags.email,
name: flags.name,
safeName: flags.safeName,
user: flags.user,
year: flags.year,
description: flags.description
};
const determine = explicit.user ?
Promise.resolve(explicit.user) :
getUser(email);
return determine
.then(user => {
return merge({
author: user || getUsername.sync(),
email: email,
name: name,
safeName: safeName,
user: user,
year: new Date().getFullYear()
}, explicit);
})
.catch(() => {
const error = new Error('Could not determine GitHub username. Please specify explicitly via --user');
error.managed = true;
throw error;
});
}