Skip to content

Commit

Permalink
feat(cli): add czg --alias can directly submit the defined commit m…
Browse files Browse the repository at this point in the history
…essage

link #43
  • Loading branch information
Zhengqbbb committed Jun 30, 2022
1 parent aa42db3 commit ea7423d
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 13 deletions.
9 changes: 5 additions & 4 deletions packages/cli/src/generator/czg.ts
@@ -1,7 +1,7 @@
import { CommitizenType, prompter, style } from "cz-git";
import inquirer from "inquirer";
import { commit } from "./commit";
import { isGitClean, getGitRootPath, injectEnv } from "../shared";
import { isGitClean, getGitRootPath, injectEnvFlag, injectEnvValue } from "../shared";
import type { CzgitParseArgs } from "../shared";

/**
Expand All @@ -25,9 +25,10 @@ export const czg = (version: string, argvs: CzgitParseArgs, environment: any = {
)} ?`
);
}
injectEnv("break", argvs.czgitArgs.subCommand?.break);
injectEnv("emoji", argvs.czgitArgs.subCommand?.emoji);
injectEnv("checkbox", argvs.czgitArgs.subCommand?.checkbox);
injectEnvFlag("break", argvs.czgitArgs.subCommand?.break);
injectEnvFlag("emoji", argvs.czgitArgs.subCommand?.emoji);
injectEnvFlag("checkbox", argvs.czgitArgs.subCommand?.checkbox);
injectEnvValue("cz_alias", argvs.czgitArgs.flag?.alias);

console.log(`czg@${version}\n`);
// commit
Expand Down
12 changes: 11 additions & 1 deletion packages/cli/src/shared/types/czg.ts
@@ -1,4 +1,12 @@
export type CzgitFlagList = "config" | "version" | "help" | "reback" | "retry" | "yes" | "hook";
export type CzgitFlagList =
| "config"
| "version"
| "help"
| "reback"
| "retry"
| "yes"
| "hook"
| "alias";
export type CzgitCommonFlag = {
/** option: --version|-v */
version?: boolean;
Expand All @@ -9,6 +17,8 @@ export type CzgitCommonFlag = {
export type CzgitFlag = {
/** option: --config="xxx" */
config?: string;
/** option: --alias="xxx" */
alias?: string;
/** option: --reback|-b */
reback?: boolean;
/** option: --retry|-r */
Expand Down
13 changes: 13 additions & 0 deletions packages/cli/src/shared/utils/env.ts
@@ -0,0 +1,13 @@
/**
* provide environment flag variable to cz-git
*/
export const injectEnvFlag = (key: string, target?: boolean) => {
if (target) process.env[key] = "1";
};

/**
* provide environment flag value to cz-git
*/
export const injectEnvValue = (key: string, target?: string) => {
if (target) process.env[key] = target;
};
1 change: 1 addition & 0 deletions packages/cli/src/shared/utils/index.ts
@@ -1,3 +1,4 @@
export * from "./cache";
export * from "./env";
export * from "./git";
export * from "./parse";
23 changes: 15 additions & 8 deletions packages/cli/src/shared/utils/parse.ts
Expand Up @@ -38,6 +38,17 @@ const resovleFlag = (
return target;
};

const resovleAlias = (arg: string, target: CzgitParseArgs) => {
if (/^:/.test(arg)) {
if (!target.czgitArgs.flag) {
target.czgitArgs.flag = { alias: "" };
}
target.czgitArgs.flag.alias = arg.slice(1);
deleteItem(arg, target.gitArgs);
}
return target;
};

/**
* resovle process.argv by minimist
* @param {ParsedArgs} argv
Expand All @@ -62,13 +73,15 @@ export const resovleArgs = (argv: string[]): CzgitParseArgs => {
gitArgs: argv
};

// resolve subcmd
if (parseArgv._.length !== 0) {
for (let i = 0; i < parseArgv._.length; i++) {
// resolve subcmd
result = resovleSubCmd(parseArgv._[i], "init", result);
result = resovleSubCmd(parseArgv._[i], "emoji", result);
result = resovleSubCmd(parseArgv._[i], "checkbox", result);
result = resovleSubCmd(parseArgv._[i], "break", result);
// resolve alias
result = resovleAlias(parseArgv._[i], result);
}
}
// resolve flag
Expand All @@ -79,13 +92,7 @@ export const resovleArgs = (argv: string[]): CzgitParseArgs => {
result = resovleFlag(parseArgv, "version", "version", result);
result = resovleFlag(parseArgv, "hook", "hook", result);
result = resovleFlag(parseArgv, "config", "config", result);
result = resovleFlag(parseArgv, "alias", "alias", result);

return result;
};

/**
* provide environment variable to cz-git
*/
export const injectEnv = (key: string, target?: boolean) => {
if (target) process.env[key] = "1";
};

0 comments on commit ea7423d

Please sign in to comment.