@@ -8,69 +8,80 @@ import {
8
8
printWarring ,
9
9
} from "@/helper" ;
10
10
import { ACTIVATION , gitUserOptions } from "@/config" ;
11
- import { GitUserOptions } from "@/types" ;
12
11
13
- async function printCurrentGitUser ( ) {
14
- const name = await execCommand ( "git" , [ "config" , "user.name" ] ) ;
15
- const email = await execCommand ( "git" , [ "config" , "user.email" ] ) ;
16
- printInfo ( `\ngit config info:\n user.name: ${ name } \n user.email: ${ email } ` ) ;
12
+ export async function setGitUserName ( name : string , ruleName : string ) {
13
+ if ( ACTIVATION ) {
14
+ loggerInfo (
15
+ `setGitUserName 参数信息: \n ${ JSON . stringify ( {
16
+ name,
17
+ ruleName,
18
+ } ) } `,
19
+ ) ;
20
+ }
21
+ const nameRegExp = new RegExp ( ruleName ! ) ;
22
+ if ( ! nameRegExp . test ( name ) ) {
23
+ printWarring ( `设置失败(user.name), ${ name } 不符合规范` ) ;
24
+ } else {
25
+ await execCommand ( "git" , [ "config" , "user.name" , name ] , {
26
+ stdio : "inherit" ,
27
+ } ) ;
28
+ const result = await execCommand ( "git" , [ "config" , "user.name" ] ) ;
29
+ printInfo ( `更新成功(user.name): ${ result } ` ) ;
30
+ }
17
31
}
18
32
19
- export const gitUser = async ( options : GitUserOptions ) => {
33
+ export async function setGitUserEmail ( email : string , ruleEmail : string ) {
20
34
if ( ACTIVATION ) {
21
- loggerInfo ( `gitUser 参数信息: \n ${ JSON . stringify ( options ) } ` ) ;
35
+ loggerInfo (
36
+ `setGitUserEmail 参数信息: \n ${ JSON . stringify ( {
37
+ email,
38
+ ruleEmail,
39
+ } ) } `,
40
+ ) ;
22
41
}
23
-
24
- const { name, email, ruleName, ruleEmail } = options ;
25
- const nameRegExp = new RegExp ( ruleName ! ) ;
26
42
const emailRegExp = new RegExp ( ruleEmail ! , "i" ) ;
27
-
28
- await printCurrentGitUser ( ) ;
29
-
30
- if ( name ) {
31
- if ( ! nameRegExp . test ( name ) ) {
32
- printWarring ( `设置失败(user.name), ${ name } 不符合规范` ) ;
33
- } else {
34
- await execCommand ( "git" , [ "config" , "user.name" , name ] , {
35
- stdio : "inherit" ,
36
- } ) ;
37
- const result = await execCommand ( "git" , [ "config" , "user.name" ] ) ;
38
- printInfo ( `更新成功(user.name): ${ result } ` ) ;
39
- }
43
+ if ( ! emailRegExp . test ( email ) ) {
44
+ printWarring ( `设置失败(user.email), ${ email } 不符合规范` ) ;
45
+ } else {
46
+ await execCommand ( "git" , [ "config" , "user.email" , email ] , {
47
+ stdio : "inherit" ,
48
+ } ) ;
49
+ const result = await execCommand ( "git" , [ "config" , "user.email" ] ) ;
50
+ printInfo ( `更新成功(user.email): ${ result } ` ) ;
40
51
}
52
+ }
41
53
42
- if ( email ) {
43
- if ( ! emailRegExp . test ( email ) ) {
44
- printWarring ( `设置失败(user.email), ${ email } 不符合规范` ) ;
45
- } else {
46
- await execCommand ( "git" , [ "config" , "user.email" , email ] , {
47
- stdio : "inherit" ,
48
- } ) ;
49
- const result = await execCommand ( "git" , [ "config" , "user.email" ] ) ;
50
- printInfo ( `更新成功(user.email): ${ result } ` ) ;
51
- }
54
+ export async function checkGitUserInfo ( ruleName : string , ruleEmail : string ) {
55
+ if ( ACTIVATION ) {
56
+ loggerInfo (
57
+ `checkGitUserInfo 参数信息: \n ${ JSON . stringify ( {
58
+ ruleName,
59
+ ruleEmail,
60
+ } ) } `,
61
+ ) ;
52
62
}
53
-
54
- if ( ! name && ! email ) {
55
- const username = await execCommand ( "git" , [ "config" , "user.name" ] ) ;
56
- if ( ! nameRegExp . test ( username ) ) {
57
- printError ( `${ username } 不符合 ${ ruleName } 规范` ) ;
58
- process . exit ( 1 ) ;
59
- }
60
- const useremail = await execCommand ( "git" , [ "config" , "user.email" ] ) ;
61
- if ( ! emailRegExp . test ( useremail ) ) {
62
- printError ( `${ useremail } 不符合 ${ ruleEmail } 规范` ) ;
63
- process . exit ( 1 ) ;
64
- }
63
+ const nameRegExp = new RegExp ( ruleName ! ) ;
64
+ const emailRegExp = new RegExp ( ruleEmail ! , "i" ) ;
65
+ const username = await execCommand ( "git" , [ "config" , "user.name" ] ) ;
66
+ if ( ! nameRegExp . test ( username ) ) {
67
+ printError ( `${ username } 不符合 ${ ruleName } 规范` ) ;
68
+ process . exit ( 1 ) ;
69
+ }
70
+ const useremail = await execCommand ( "git" , [ "config" , "user.email" ] ) ;
71
+ if ( ! emailRegExp . test ( useremail ) ) {
72
+ printError ( `${ useremail } 不符合 ${ ruleEmail } 规范` ) ;
73
+ process . exit ( 1 ) ;
65
74
}
66
- } ;
75
+ }
67
76
68
77
export default function gitUserInstaller ( cli : CAC ) {
69
78
return {
70
79
name : "gitUserInstaller" ,
71
80
setup : ( ) => {
72
81
cli
73
- . command ( "git-user" , "设置或校验 git user 信息是否规范" )
82
+ . command ( "gituser" , "设置或校验 git user 信息是否规范" )
83
+ . alias ( "git-user" )
84
+ . alias ( "gitu" )
74
85
. option ( "-n, --name <name>" , "设置 user.name" )
75
86
. option ( "-e, --email <email>" , "设置 user.email" )
76
87
. option ( "--rule-name <regexp>" , "设置 user.name 匹配规则(转义字符串)" , {
@@ -83,7 +94,19 @@ export default function gitUserInstaller(cli: CAC) {
83
94
default : gitUserOptions . ruleEmail ,
84
95
} ,
85
96
)
86
- . action ( async ( options ) => await gitUser ( options ) ) ;
97
+ . action ( async ( options ) => {
98
+ console . log ( options ) ;
99
+ const { name, email, ruleName, ruleEmail } = options ;
100
+ if ( ! name && ! email ) {
101
+ await checkGitUserInfo ( ruleName , ruleEmail ) ;
102
+ }
103
+ if ( name ) {
104
+ await setGitUserName ( name , ruleName ) ;
105
+ }
106
+ if ( email ) {
107
+ await setGitUserName ( email , ruleEmail ) ;
108
+ }
109
+ } ) ;
87
110
} ,
88
111
} ;
89
112
}
0 commit comments