@anth0nycodes/license-generator 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +14 -2
- package/dist/helpers.js.map +1 -1
- package/dist/index.js +27 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers.ts +15 -2
- package/src/index.ts +36 -27
package/dist/helpers.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export declare function getGitUsername(): string;
|
|
|
2
2
|
export declare function fileExists(path: string): Promise<boolean>;
|
|
3
3
|
export interface Config {
|
|
4
4
|
defaultLicense?: string;
|
|
5
|
+
defaultAuthor?: string;
|
|
5
6
|
}
|
|
6
7
|
export declare function getConfig(): Promise<Config>;
|
|
7
8
|
export declare function setConfig(config: Config): Promise<void>;
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,WAe7B;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,oBAO5C;AAKD,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAQjD;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,iBAc7C"}
|
package/dist/helpers.js
CHANGED
|
@@ -5,8 +5,20 @@ import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
export function getGitUsername() {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
try {
|
|
9
|
+
const uncleanName = String(execSync("git config user.name"));
|
|
10
|
+
return uncleanName.replace(/\r?\n/g, "");
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
14
|
+
if (errorMessage.includes("git config user.name")) {
|
|
15
|
+
console.error('Error: Git username not configured. Set it with: git config --global user.name "Your Name"');
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
console.error(`Error occurred in getGitUsername: ${errorMessage}`);
|
|
19
|
+
}
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
10
22
|
}
|
|
11
23
|
export async function fileExists(path) {
|
|
12
24
|
try {
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,cAAc;IAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC7D,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CACX,4FAA4F,CAC7F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;AACzD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAOpD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,SAAS,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QACvD,MAAM,SAAS,CACb,WAAW,EACX,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EACtC,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,8 @@ const main = async () => {
|
|
|
22
22
|
program
|
|
23
23
|
.option("--ls, --list", "list all available license keys")
|
|
24
24
|
.option("-q, --quick", "alternative to interactive mode, generate a license using the saved default license")
|
|
25
|
-
.option("
|
|
25
|
+
.option("--sl, --set-license <license>", "set a default license for -q / --quick option")
|
|
26
|
+
.option("--sa, --set-author <author>", "set a default author for -q / --quick option");
|
|
26
27
|
program.parse();
|
|
27
28
|
const opts = program.opts();
|
|
28
29
|
// Lists all available license keys
|
|
@@ -33,41 +34,44 @@ const main = async () => {
|
|
|
33
34
|
console.log(`Available license keys:\n${availableLicenseKeys}`);
|
|
34
35
|
process.exit(0);
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
console.error("Error: Git username not configured.");
|
|
45
|
-
console.error("Please run: git config --global user.name 'Your Name'");
|
|
37
|
+
let configUpdated = false;
|
|
38
|
+
// Sets a default license
|
|
39
|
+
if (opts.setLicense) {
|
|
40
|
+
const licenseKey = opts.setLicense.toLowerCase();
|
|
41
|
+
const isValid = licenses.some((l) => l.key === licenseKey);
|
|
42
|
+
if (!isValid) {
|
|
43
|
+
console.error(`Error: "${licenseKey}" is not a valid license.`);
|
|
44
|
+
console.error("Available licenses:", licenses.map((l) => l.key).join(", "));
|
|
46
45
|
process.exit(1);
|
|
47
46
|
}
|
|
47
|
+
await setConfig({ defaultLicense: licenseKey });
|
|
48
|
+
console.log(`Default license set to: ${color.blueBright(licenseKey)}`);
|
|
49
|
+
configUpdated = true;
|
|
50
|
+
}
|
|
51
|
+
// Sets a default author
|
|
52
|
+
if (opts.setAuthor) {
|
|
53
|
+
const author = opts.setAuthor;
|
|
54
|
+
await setConfig({ defaultAuthor: author });
|
|
55
|
+
console.log(`Default author set to: ${color.blueBright(author)}`);
|
|
56
|
+
configUpdated = true;
|
|
57
|
+
}
|
|
58
|
+
// Skips interactive mode and generates a license with the saved default license
|
|
59
|
+
if (opts.quick) {
|
|
48
60
|
const config = await getConfig();
|
|
61
|
+
let name = config.defaultAuthor || getGitUsername();
|
|
62
|
+
let year = String(new Date().getFullYear());
|
|
49
63
|
let licenseKey = config.defaultLicense || "mit";
|
|
50
64
|
const licenseOptionContent = await getLicenseContent(`${BASE_URL}/${licenseKey}`);
|
|
51
65
|
try {
|
|
52
66
|
await createLicense(licenseOptionContent, year, name);
|
|
67
|
+
process.exit(0);
|
|
53
68
|
}
|
|
54
69
|
catch (error) {
|
|
55
70
|
console.error(`Error occurred in createLicense: ${error}`);
|
|
56
71
|
throw error;
|
|
57
72
|
}
|
|
58
|
-
return;
|
|
59
73
|
}
|
|
60
|
-
|
|
61
|
-
if (opts.set) {
|
|
62
|
-
const licenseKey = opts.set.toLowerCase();
|
|
63
|
-
const isValid = licenses.some((l) => l.key === licenseKey);
|
|
64
|
-
if (!isValid) {
|
|
65
|
-
console.error(`Error: "${licenseKey}" is not a valid license.`);
|
|
66
|
-
console.error("Available licenses:", licenses.map((l) => l.key).join(", "));
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
69
|
-
await setConfig({ defaultLicense: licenseKey });
|
|
70
|
-
console.log(`Default license set to: ${color.blueBright(licenseKey)}`);
|
|
74
|
+
if (configUpdated) {
|
|
71
75
|
console.log(`Use --quick to generate with this license.`);
|
|
72
76
|
return;
|
|
73
77
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IAErC,OAAO;SACJ,IAAI,CAAC,mBAAmB,CAAC;SACzB,WAAW,CACV,8EAA8E,CAC/E;SACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO;SACJ,MAAM,CAAC,cAAc,EAAE,iCAAiC,CAAC;SACzD,MAAM,CACL,aAAa,EACb,qFAAqF,CACtF;SACA,MAAM,CACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/helpers.ts
CHANGED
|
@@ -6,8 +6,20 @@ import { join } from "node:path";
|
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
|
|
8
8
|
export function getGitUsername() {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
try {
|
|
10
|
+
const uncleanName = String(execSync("git config user.name"));
|
|
11
|
+
return uncleanName.replace(/\r?\n/g, "");
|
|
12
|
+
} catch (error) {
|
|
13
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
14
|
+
if (errorMessage.includes("git config user.name")) {
|
|
15
|
+
console.error(
|
|
16
|
+
'Error: Git username not configured. Set it with: git config --global user.name "Your Name"',
|
|
17
|
+
);
|
|
18
|
+
} else {
|
|
19
|
+
console.error(`Error occurred in getGitUsername: ${errorMessage}`);
|
|
20
|
+
}
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
11
23
|
}
|
|
12
24
|
|
|
13
25
|
export async function fileExists(path: string) {
|
|
@@ -24,6 +36,7 @@ const CONFIG_FILE = join(CONFIG_DIR, "config.json");
|
|
|
24
36
|
|
|
25
37
|
export interface Config {
|
|
26
38
|
defaultLicense?: string;
|
|
39
|
+
defaultAuthor?: string;
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
export async function getConfig(): Promise<Config> {
|
package/src/index.ts
CHANGED
|
@@ -35,8 +35,12 @@ const main = async () => {
|
|
|
35
35
|
"alternative to interactive mode, generate a license using the saved default license",
|
|
36
36
|
)
|
|
37
37
|
.option(
|
|
38
|
-
"
|
|
38
|
+
"--sl, --set-license <license>",
|
|
39
39
|
"set a default license for -q / --quick option",
|
|
40
|
+
)
|
|
41
|
+
.option(
|
|
42
|
+
"--sa, --set-author <author>",
|
|
43
|
+
"set a default author for -q / --quick option",
|
|
40
44
|
);
|
|
41
45
|
|
|
42
46
|
program.parse();
|
|
@@ -52,20 +56,40 @@ const main = async () => {
|
|
|
52
56
|
process.exit(0);
|
|
53
57
|
}
|
|
54
58
|
|
|
55
|
-
|
|
56
|
-
if (opts.quick) {
|
|
57
|
-
let name: string;
|
|
58
|
-
let year = String(new Date().getFullYear());
|
|
59
|
+
let configUpdated = false;
|
|
59
60
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
// Sets a default license
|
|
62
|
+
if (opts.setLicense) {
|
|
63
|
+
const licenseKey = opts.setLicense.toLowerCase();
|
|
64
|
+
const isValid = licenses.some((l) => l.key === licenseKey);
|
|
65
|
+
|
|
66
|
+
if (!isValid) {
|
|
67
|
+
console.error(`Error: "${licenseKey}" is not a valid license.`);
|
|
68
|
+
console.error(
|
|
69
|
+
"Available licenses:",
|
|
70
|
+
licenses.map((l) => l.key).join(", "),
|
|
71
|
+
);
|
|
65
72
|
process.exit(1);
|
|
66
73
|
}
|
|
67
74
|
|
|
75
|
+
await setConfig({ defaultLicense: licenseKey });
|
|
76
|
+
console.log(`Default license set to: ${color.blueBright(licenseKey)}`);
|
|
77
|
+
configUpdated = true;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Sets a default author
|
|
81
|
+
if (opts.setAuthor) {
|
|
82
|
+
const author = opts.setAuthor;
|
|
83
|
+
await setConfig({ defaultAuthor: author });
|
|
84
|
+
console.log(`Default author set to: ${color.blueBright(author)}`);
|
|
85
|
+
configUpdated = true;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Skips interactive mode and generates a license with the saved default license
|
|
89
|
+
if (opts.quick) {
|
|
68
90
|
const config = await getConfig();
|
|
91
|
+
let name = config.defaultAuthor || getGitUsername();
|
|
92
|
+
let year = String(new Date().getFullYear());
|
|
69
93
|
let licenseKey = config.defaultLicense || "mit";
|
|
70
94
|
|
|
71
95
|
const licenseOptionContent = await getLicenseContent(
|
|
@@ -74,29 +98,14 @@ const main = async () => {
|
|
|
74
98
|
|
|
75
99
|
try {
|
|
76
100
|
await createLicense(licenseOptionContent, year, name);
|
|
101
|
+
process.exit(0);
|
|
77
102
|
} catch (error) {
|
|
78
103
|
console.error(`Error occurred in createLicense: ${error}`);
|
|
79
104
|
throw error;
|
|
80
105
|
}
|
|
81
|
-
return;
|
|
82
106
|
}
|
|
83
107
|
|
|
84
|
-
|
|
85
|
-
if (opts.set) {
|
|
86
|
-
const licenseKey = opts.set.toLowerCase();
|
|
87
|
-
const isValid = licenses.some((l) => l.key === licenseKey);
|
|
88
|
-
|
|
89
|
-
if (!isValid) {
|
|
90
|
-
console.error(`Error: "${licenseKey}" is not a valid license.`);
|
|
91
|
-
console.error(
|
|
92
|
-
"Available licenses:",
|
|
93
|
-
licenses.map((l) => l.key).join(", "),
|
|
94
|
-
);
|
|
95
|
-
process.exit(1);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
await setConfig({ defaultLicense: licenseKey });
|
|
99
|
-
console.log(`Default license set to: ${color.blueBright(licenseKey)}`);
|
|
108
|
+
if (configUpdated) {
|
|
100
109
|
console.log(`Use --quick to generate with this license.`);
|
|
101
110
|
return;
|
|
102
111
|
}
|