Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Feb 28, 2020. It is now read-only.

Commit 62ddd7a

Browse files
feat: 增加并(暂时)默认使用英文输出反馈信息
输出的中文信息在git bash和其他git插件都显示乱码 (但Windows cmd正常) git bash已经是中文环境,git log, git status都能正常显示中文 脚本也已设置utf-8编码 找到原因前暂时使用英文输出
1 parent 3bcd7b9 commit 62ddd7a

File tree

1 file changed

+59
-20
lines changed

1 file changed

+59
-20
lines changed

‎validate.py

Lines changed: 59 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
# constant
1010
LINE_LIMIT = 100
1111
BODY_REQUIRED = False
12+
# TODO: moved to config later, changed to zh-CN after fix encoding issue
13+
LANG = 'en'
1214

1315
TYPE_LIST = [
1416
'feat', # 新功能(feature)
@@ -38,24 +40,46 @@
3840
module=__name__)
3941

4042
# error message
43+
# TODO: moved to config or lang file later
4144
ERROR_MESSAGES = {
42-
# Normal case
43-
ErrorEnum.VALIDATED: '{errorname}:commit message 符合规范。',
44-
ErrorEnum.MERGE: '{errorname}:检测到 merge commit,跳过规范检查。',
45-
# File error
46-
ErrorEnum.ARG_MISSING: '错误 {errorname}:缺少 commit message 文件参数。',
47-
ErrorEnum.FILE_MISSING: '错误 {errorname}:文件 {filepath} 不存在。',
48-
# Empty content
49-
ErrorEnum.EMPTY_MESSAGE: '错误 {errorname}:commit message 没有内容或只有空白字符。',
50-
ErrorEnum.EMPTY_HEADER: '错误 {errorname}:header (首行) 没有内容或只有空白字符。',
51-
# Header error
52-
ErrorEnum.BAD_HEADER_FORMAT: '错误 {errorname}:header (首行) 不符合规范:\n{header}\n如果检查没有发现错误,请确认是否使用了中文冒号,以及冒号后面漏了空格。',
53-
ErrorEnum.WRONG_TYPE: '错误 {errorname}:{type} 不是以下关键字之一:\n%s' % (', '.join(TYPE_LIST)),
54-
# Body error
55-
ErrorEnum.BODY_MISSING: '错误 {errorname}:body 没有内容或只有空白字符。', # 仅 BODY_REQUIRED 为 True时生效
56-
ErrorEnum.NO_BLANK_LINE_BEFORE_BODY: '错误 {errorname}:header 和 body 之间没有空一行。',
57-
# Common error
58-
ErrorEnum.LINE_OVERLONG: '错误 {errorname}:单行内容长度为{length},超过了%d个字符:\n{line}' % (LINE_LIMIT)
45+
'en': {
46+
# Normal case
47+
ErrorEnum.VALIDATED: '{errorname}: commit message meet the rule.',
48+
ErrorEnum.MERGE: '{errorname}: merge commit detected,skip check.',
49+
# File error
50+
ErrorEnum.ARG_MISSING: 'Error {errorname}: commit message file argument missing.',
51+
ErrorEnum.FILE_MISSING: 'Error {errorname}: file {filepath} not exists.',
52+
# Empty content
53+
ErrorEnum.EMPTY_MESSAGE: 'Error {errorname}: commit message has no content except whitespaces.',
54+
ErrorEnum.EMPTY_HEADER: 'Error {errorname}: header (first line) has no content except whitespaces.',
55+
# Header error
56+
ErrorEnum.BAD_HEADER_FORMAT: 'Error {errorname}: header (first line) not following the rule:\n{header}\nif you can not find any error after check, maybe you use Chinese colon, or lack of whitespace after the colon.',
57+
ErrorEnum.WRONG_TYPE: 'Error {errorname}: {type} one of the keywords:\n%s' % (', '.join(TYPE_LIST)),
58+
# Body error
59+
ErrorEnum.BODY_MISSING: 'Error {errorname}: body has no content except whitespaces.', # 仅 BODY_REQUIRED 为 True时生效
60+
ErrorEnum.NO_BLANK_LINE_BEFORE_BODY: 'Error {errorname}: no empty line between header and body.',
61+
# Common error
62+
ErrorEnum.LINE_OVERLONG: 'Error {errorname}: the length of line is {length}, exceed %d:\n{line}' % (LINE_LIMIT)
63+
},
64+
'zh-CN': {
65+
# Normal case
66+
ErrorEnum.VALIDATED: '{errorname}:commit message 符合规范。',
67+
ErrorEnum.MERGE: '{errorname}:检测到 merge commit,跳过规范检查。',
68+
# File error
69+
ErrorEnum.ARG_MISSING: '错误 {errorname}:缺少 commit message 文件参数。',
70+
ErrorEnum.FILE_MISSING: '错误 {errorname}:文件 {filepath} 不存在。',
71+
# Empty content
72+
ErrorEnum.EMPTY_MESSAGE: '错误 {errorname}:commit message 没有内容或只有空白字符。',
73+
ErrorEnum.EMPTY_HEADER: '错误 {errorname}:header (首行) 没有内容或只有空白字符。',
74+
# Header error
75+
ErrorEnum.BAD_HEADER_FORMAT: '错误 {errorname}:header (首行) 不符合规范:\n{header}\n如果检查没有发现错误,请确认是否使用了中文冒号,以及冒号后面漏了空格。',
76+
ErrorEnum.WRONG_TYPE: '错误 {errorname}:{type} 不是以下关键字之一:\n%s' % (', '.join(TYPE_LIST)),
77+
# Body error
78+
ErrorEnum.BODY_MISSING: '错误 {errorname}:body 没有内容或只有空白字符。', # 仅 BODY_REQUIRED 为 True时生效
79+
ErrorEnum.NO_BLANK_LINE_BEFORE_BODY: '错误 {errorname}:header 和 body 之间没有空一行。',
80+
# Common error
81+
ErrorEnum.LINE_OVERLONG: '错误 {errorname}:单行内容长度为{length},超过了%d个字符:\n{line}' % (LINE_LIMIT)
82+
}
5983
}
6084

6185
NON_FORMAT_ERROR = (
@@ -65,7 +89,21 @@
6589
ErrorEnum.FILE_MISSING
6690
)
6791

68-
RULE_MESSAGE = '''
92+
# TODO: moved to config or lang file later
93+
RULE_MESSAGE = {
94+
'en': '''
95+
Commit message rule as follow:
96+
<type>(<scope>): <subject>
97+
// empty line
98+
<body>
99+
// empty line
100+
<footer>
101+
102+
(<scope>), <body> and <footer> are optional
103+
<type> must be one of %s
104+
more specific instructions, please refer to http://192.168.19.127:3000/jayce/git-hook-commit-msg''' % (', '.join(TYPE_LIST)),
105+
106+
'zh-CN': '''
69107
Commit message 的格式要求如下:
70108
<type>(<scope>): <subject>
71109
// 空一行
@@ -76,6 +114,7 @@
76114
其中 (<scope>) <body> 和 <footer> 可选
77115
<type> 必须是 %s 中的一个
78116
更详细的格式要求说明,请参考 http://192.168.19.127:3000/jayce/git-hook-commit-msg''' % (', '.join(TYPE_LIST))
117+
}
79118

80119
MERGE_PATTEN = r'^Merge '
81120
# 弱匹配,只检查基本的格式,各个部分允许为空,留到match.group(x)部分检查,以提供更详细的报错信息
@@ -88,9 +127,9 @@
88127

89128
def print_error_msg(state, **kwargs):
90129
kwargs['errorname'] = state.name
91-
print(ERROR_MESSAGES[state].format(**kwargs))
130+
print(ERROR_MESSAGES[LANG][state].format(**kwargs))
92131
if state not in NON_FORMAT_ERROR:
93-
print(RULE_MESSAGE)
132+
print(RULE_MESSAGE[LANG])
94133

95134

96135
def check_header(header):

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /