@@ -29,13 +29,28 @@ def _make_argparser(filenames_help):
2929 return parser
3030
3131
32+ class OptionalAlias (object ):
33+
34+ def check (self , dct ):
35+ if 'alias' in dct :
36+ cfgv .check_string (dct ['alias' ])
37+
38+ def apply_default (self , dct ):
39+ if 'alias' not in dct :
40+ dct ['alias' ] = dct ['id' ]
41+
42+ def remove_default (self , dct ):
43+ pass
44+
45+
3246MANIFEST_HOOK_DICT = cfgv .Map (
3347 'Hook' , 'id' ,
3448
3549 cfgv .Required ('id' , cfgv .check_string ),
3650 cfgv .Required ('name' , cfgv .check_string ),
3751 cfgv .Required ('entry' , cfgv .check_string ),
3852 cfgv .Required ('language' , cfgv .check_one_of (all_languages )),
53+ cfgv .OptionalNoDefault ('alias' , cfgv .check_string ),
3954
4055 cfgv .Optional (
4156 'files' , cfgv .check_and (cfgv .check_string , cfgv .check_regex ), '' ,
@@ -125,6 +140,7 @@ def remove_default(self, dct):
125140 'Hook' , 'id' ,
126141
127142 cfgv .Required ('id' , cfgv .check_string ),
143+ OptionalAlias (),
128144
129145 # All keys in manifest hook dict are valid in a config hook dict, but
130146 # are optional.
@@ -133,7 +149,7 @@ def remove_default(self, dct):
133149 * [
134150 cfgv .OptionalNoDefault (item .key , item .check_fn )
135151 for item in MANIFEST_HOOK_DICT .items
136- if item .key != 'id'
152+ if item .key not in ( 'id' , 'alias' )
137153 ]
138154)
139155CONFIG_REPO_DICT = cfgv .Map (
0 commit comments