Skip to content

Commit 17bcd6b

Browse files
authored
Feat: add option version (closes #19) (#21)
* Feat: add new option version * Test: add tests for new feat * Docs: add section for option version
1 parent 3e2fee8 commit 17bcd6b

File tree

8 files changed

+50
-5
lines changed

8 files changed

+50
-5
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* [Options](#options)
2121
* [sgr recover --backup](#sgr-recover---backup)
2222
* [sgr --help](#sgr---help)
23+
* [sgr --version](#sgr---version)
2324

2425
## Why?
2526

@@ -124,3 +125,12 @@ With `sgr --help` you can display usage of `semantic-git-release-cli`.
124125
# usage of cli
125126
$ sgr --help
126127
```
128+
129+
### sgr --version
130+
131+
With `sgr --version` you can display the current version of `semantic-git-release-cli`.
132+
133+
```sh
134+
# current version
135+
$ sgr --version
136+
```

lib/cmds/recover.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import recoverTasks from '../tasks/recover-tasks';
2+
import { handler as showVersion } from '../cmds/version';
23

34
const command = 'recover';
45

@@ -7,7 +8,13 @@ const aliases = ['r'];
78
const desc = 'Recover the complete CHANGELOG.md';
89

910
/* istanbul ignore next */
10-
const handler = (argv) => recoverTasks(argv.b).run();
11+
const handler = (argv) => {
12+
if (argv.v) {
13+
return showVersion();
14+
}
15+
16+
return recoverTasks(argv).run();
17+
};
1118

1219
export {
1320
command,

lib/cmds/release.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const command = '*';
55
const desc = 'Release a new version (run tests, write changelog, tag version, push release)';
66

77
/* istanbul ignore next */
8-
const handler = () => release();
8+
const handler = (argv) => release(argv);
99

1010
export {
1111
command,

lib/options/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import backup from './backup';
2+
import version from './version';
23

34
export default {
45
backup,
6+
version,
57
};

lib/options/version.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const version = {
2+
alias: 'v',
3+
describe: 'Show the current version number',
4+
type: 'boolean',
5+
};
6+
7+
export default version;

lib/tasks/recover-tasks/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import Listr from 'listr';
22

33
import generateCompleteChangelog from '../../helpers/generateCompleteChangelog';
44

5-
const recoverTasks = (backup) => (
5+
const recoverTasks = (argv) => (
66
new Listr([
77
{
88
title: 'Recover the complete CHANGELOG.md',
99
task: () => {
10-
generateCompleteChangelog(backup);
10+
generateCompleteChangelog(argv.b);
1111
},
1212
},
1313
])

lib/tasks/release-tasks/index.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import generateVersions from '../../helpers/generateVersions';
1111
import getLatestVersion from '../../helpers/getLatestVersion';
1212
import questions from '../../questions/release-questions';
1313

14+
import { handler as showVersion } from '../../cmds/version';
15+
1416
import cleanupTasks from './cleanup';
1517
import releaseTasks from './release';
1618
import testsTasks from './tests';
@@ -42,7 +44,7 @@ const tasks = (commits, version) => (
4244
])
4345
);
4446

45-
const release = () => {
47+
const release = (argv) => {
4648
const cwd = process.cwd();
4749
const latestTaggedCommits = taggedCommits({ path: cwd });
4850
const latestTaggedCommit = latestTaggedCommits.length === 0 ? '' : latestTaggedCommits[0].commit;
@@ -63,6 +65,10 @@ const release = () => {
6365
return console.warn(chalk.red('Error: it seems you do not have a package.json... try npm init'));
6466
}
6567

68+
if (argv.v) {
69+
return showVersion();
70+
}
71+
6672
return inquirer
6773
.prompt(questionsList)
6874
.then((answers) => {

test/options/version.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import test from 'ava';
2+
3+
import version from '../../lib/options/version';
4+
5+
test('OPTIONS | VERSION | check alias, describe and type', (t) => {
6+
const expected = {
7+
alias: 'v',
8+
describe: 'Show the current version number',
9+
type: 'boolean',
10+
};
11+
12+
t.deepEqual(version, expected);
13+
});

0 commit comments

Comments
 (0)