feat(commands): add --sudo option to commit command (#16)
This commit is contained in:
39
src/index.ts
39
src/index.ts
@@ -131,6 +131,7 @@ program
|
||||
.description("Create a conventional commit")
|
||||
.option("-S, --sign", "sign the commit")
|
||||
.option("--amend", "amend commit message to the last commit")
|
||||
.option("--sudo", "remove any validation")
|
||||
.action(async (options) => {
|
||||
await CheckForUpdates();
|
||||
|
||||
@@ -138,6 +139,7 @@ program
|
||||
|
||||
const sign = config?.autoSignCommits || options.sign ? true : false;
|
||||
const amend = options.amend ? true : false;
|
||||
const sudo = options.sudo ? true : false;
|
||||
|
||||
intro("Creating a conventional commit");
|
||||
|
||||
@@ -166,7 +168,7 @@ program
|
||||
).match(/\d+/gm) || []
|
||||
).reduce((partialSum, num) => partialSum + Number(num), 0);
|
||||
|
||||
if (changedLines > 250) {
|
||||
if (changedLines > 250 && !sudo) {
|
||||
const proceedCommitting = await confirm({
|
||||
message:
|
||||
"You are about to commit changes to more than 250 lines, are you sure you want to proceed?",
|
||||
@@ -240,6 +242,10 @@ program
|
||||
"Input a scope (subsystem which change is relevant to e.g. router, forms, core) or leave empty",
|
||||
placeholder: "router",
|
||||
validate: (value) => {
|
||||
if (sudo) {
|
||||
return
|
||||
}
|
||||
|
||||
if (config?.scopes && value) {
|
||||
if (!config?.scopes.includes(value))
|
||||
return "This scope is not allowed by local configuration";
|
||||
@@ -260,6 +266,10 @@ program
|
||||
message: `Briefly describe made changes in imperative tense, maximum length 50`,
|
||||
placeholder: "warn upon suspicious router requests",
|
||||
validate: (value) => {
|
||||
if (sudo) {
|
||||
return
|
||||
}
|
||||
|
||||
if (value.length > 50) {
|
||||
return "Your message is too long";
|
||||
}
|
||||
@@ -321,10 +331,8 @@ program
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const commitMessage = `${type.toString()}${
|
||||
scope ? `(${scope.toString()})` : ``
|
||||
}${isBreaking ? "!" : ""}: ${message.toString()}${
|
||||
resolvesIssue ? ` (${issue?.toString()})` : ``
|
||||
const commitMessage = `${type.toString()}${scope ? `(${scope.toString()})` : ``
|
||||
}${isBreaking ? "!" : ""}: ${message.toString()}${resolvesIssue ? ` (${issue?.toString()})` : ``
|
||||
}${body ? `\n\n${body}` : ``}${footer ? `\n\n${footer}` : ``}`;
|
||||
|
||||
if (stageAll) {
|
||||
@@ -344,8 +352,7 @@ program
|
||||
note(commitMessage);
|
||||
|
||||
outro(
|
||||
`Finished ${
|
||||
amend ? "amending" : "creating"
|
||||
`Finished ${amend ? "amending" : "creating"
|
||||
} a conventional commit, feel free to push`
|
||||
);
|
||||
});
|
||||
@@ -467,8 +474,7 @@ program
|
||||
: firstMessageLine[0];
|
||||
|
||||
console.log(
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${
|
||||
type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
}`
|
||||
);
|
||||
}
|
||||
@@ -487,8 +493,7 @@ program
|
||||
: firstMessageLine[0];
|
||||
|
||||
console.log(
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${
|
||||
type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
}`
|
||||
);
|
||||
}
|
||||
@@ -507,8 +512,7 @@ program
|
||||
: firstMessageLine[0];
|
||||
|
||||
console.log(
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${
|
||||
type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
}`
|
||||
);
|
||||
}
|
||||
@@ -527,8 +531,7 @@ program
|
||||
: firstMessageLine[0];
|
||||
|
||||
console.log(
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${
|
||||
type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
`${showHashes ? `- [${shortHash}]` : ``} - ${type ? `**${type}**: ${briefMessage}` : briefMessage
|
||||
}`
|
||||
);
|
||||
}
|
||||
@@ -616,11 +619,9 @@ program
|
||||
// /(build|feat|docs)(\((commands|changelog)\))?!?: .* ?(\(..*\))?((\n\n..*)?(\n\n..*)?)?/gm
|
||||
|
||||
const testRegex = new RegExp(
|
||||
`(${
|
||||
config?.types?.map((type) => type.value).join("|") ||
|
||||
`(${config?.types?.map((type) => type.value).join("|") ||
|
||||
"feat|fix|build|ci|docs|perf|refactor|chore"
|
||||
})(\\((${
|
||||
config?.scopes ? [...config?.scopes, "release"].join("|") : "..*"
|
||||
})(\\((${config?.scopes ? [...config?.scopes, "release"].join("|") : "..*"
|
||||
})\\))?!?: .* ?(\\(..*\\))?((\n\n..*)?(\n\n..*)?)?`,
|
||||
"gm"
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user