Skip to content

Commit

Permalink
Tidy options logic
Browse files Browse the repository at this point in the history
  • Loading branch information
cookpete committed Nov 7, 2017
1 parent b50070e commit 34fcfaa
Showing 1 changed file with 23 additions and 14 deletions.
37 changes: 23 additions & 14 deletions src/run.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,33 @@ const DEFAULT_OUTPUT = 'CHANGELOG.md'
const DEFAULT_TEMPLATE = 'compact'
const DEFAULT_REMOTE = 'origin'
const NPM_VERSION_TAG_PREFIX = 'v'
const PACKAGE_OPTIONS_KEY = 'auto-changelog'

commander
.option('-o, --output [file]', `output file, default: ${DEFAULT_OUTPUT}`, DEFAULT_OUTPUT)
.option('-t, --template [template]', `specify template to use [compact, keepachangelog, json], default: ${DEFAULT_TEMPLATE}`, DEFAULT_TEMPLATE)
.option('-r, --remote [remote]', `specify git remote to use for links, default: ${DEFAULT_REMOTE}`, DEFAULT_REMOTE)
.option('-p, --package', 'use version from package.json as latest release')
.option('-u, --unreleased', 'include section for unreleased changes')
.version(version)
.parse(process.argv)
function getOptions (pkg) {
const options = commander
.option('-o, --output [file]', `output file, default: ${DEFAULT_OUTPUT}`, DEFAULT_OUTPUT)
.option('-t, --template [template]', `specify template to use [compact, keepachangelog, json], default: ${DEFAULT_TEMPLATE}`, DEFAULT_TEMPLATE)
.option('-r, --remote [remote]', `specify git remote to use for links, default: ${DEFAULT_REMOTE}`, DEFAULT_REMOTE)
.option('-p, --package', 'use version from package.json as latest release')
.option('-u, --unreleased', 'include section for unreleased changes')
.version(version)
.parse(process.argv)

if (!pkg) {
if (options.package) {
throw Error('package.json could not be found')
}
return options
}
return {
...options,
...pkg[PACKAGE_OPTIONS_KEY]
}
}

export default async function run () {
const pkg = await pathExists('package.json') && await readJson('package.json')
let options = { ...commander }
if (pkg) {
options = { ...options, ...pkg['auto-changelog'] }
} else if (commander.package) {
throw Error('package.json could not be found')
}
const options = getOptions(pkg)
const origin = await fetchOrigin(options.remote)
const commits = await fetchCommits(origin)
const packageVersion = options.package ? NPM_VERSION_TAG_PREFIX + pkg.version : null
Expand Down

0 comments on commit 34fcfaa

Please sign in to comment.