Skip to content

Commit 5d2d168

Browse files
committed
fix(init): verify tag and correct version load
1 parent a8f5ed5 commit 5d2d168

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

src/commands/init.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { getHeader, error } from '../console';
2-
import { isGit, setVersion, setTag, initGit, setCommit } from '../git';
2+
import { isGit, setVersion, setTag, initGit, setCommit, existsTag } from '../git';
33
import { createChangelog } from '../changelog';
4-
import { setGeneriConfig, getGeneriConfig } from '../generi';
4+
import { setGeneriConfig, getGeneriConfig, pkgConfig, lernaConfig } from '../generi';
55
import * as log from './log';
66
import generiDefault from '../defines/generi-default.json';
7-
import { isChangesForCommit } from '../utils';
7+
import { getVersion, isChangesForCommit } from '../utils';
88

99
export const setup = () => {
1010
const git = isGit();
11+
let version = getVersion();
1112

1213
getHeader('generi init');
1314

@@ -20,6 +21,14 @@ export const setup = () => {
2021
// @ts-expect-error
2122
setGeneriConfig(generiDefault);
2223

24+
if (!existsTag()) {
25+
if (version) setTag(version);
26+
else {
27+
version = 'v0.1.0';
28+
setVersion(version, 'patch');
29+
}
30+
}
31+
2332
if (git) {
2433
setCommit('chore: generate generi.json');
2534

@@ -28,9 +37,15 @@ export const setup = () => {
2837
return;
2938
}
3039

31-
setVersion('v0.1.0', 'minor');
40+
if (!version) {
41+
error(`${pkgConfig} or ${lernaConfig} it was not found.`);
42+
43+
return;
44+
}
45+
46+
setVersion(version, 'minor');
3247

33-
createChangelog('v0.1.0');
48+
createChangelog(version);
3449

35-
setTag('v0.1.0');
50+
setTag(version);
3651
};

src/git.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ export const commits = (): Commit[] => {
3636
.map(parseLogMessage);
3737
};
3838

39+
export const existsTag = (): boolean => {
40+
try {
41+
return !!execa.sync('git', ['describe', '--abbrev=0', '--tags']);
42+
} catch (e) {
43+
return false;
44+
}
45+
};
46+
3947
export const lastTag = (): string => {
4048
let last;
4149

src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export const setChangelog = (content: string) => {
7474
fs.writeFileSync(getChangelogRoot(), content, { encoding: 'utf-8' });
7575
};
7676

77-
export const getPackage = () => {
77+
export const getPackage = (): Record<string, unknown> => {
7878
return destr(getFile(getPackageRoot()));
7979
};
8080

0 commit comments

Comments
 (0)