6
6
from click_loglevel import LogLevel
7
7
from ghtoken import get_ghtoken
8
8
from .config import README_FOLDER , RECORD_FILE
9
+ from .core import RepoHost
9
10
from .readmes import mkreadmes
10
11
from .record import RepoRecord
11
12
from .util import commit , runcmd
12
13
13
14
14
15
def set_mode (
15
- ctx : click .Context , _param : click .Parameter , value : str | None
16
- ) -> str | None :
16
+ ctx : click .Context , _param : click .Parameter , value : RepoHost | None
17
+ ) -> RepoHost | None :
17
18
if value is not None :
18
19
ctx .params .setdefault ("mode" , set ()).add (value )
19
20
return value
@@ -29,28 +30,32 @@ def set_mode(
29
30
)
30
31
@click .option (
31
32
"--gin" ,
32
- flag_value = "gin" ,
33
+ flag_value = RepoHost .GIN ,
34
+ type = click .UNPROCESSED ,
33
35
callback = set_mode ,
34
36
expose_value = False ,
35
37
help = "Update GIN data" ,
36
38
)
37
39
@click .option (
38
40
"--github" ,
39
- flag_value = "github" ,
41
+ flag_value = RepoHost .GITHUB ,
42
+ type = click .UNPROCESSED ,
40
43
callback = set_mode ,
41
44
expose_value = False ,
42
45
help = "Update GitHub data" ,
43
46
)
44
47
@click .option (
45
48
"--hub-datalad-org" ,
46
- flag_value = "hub.datalad.org" ,
49
+ flag_value = RepoHost .HUB_DATALAD_ORG ,
50
+ type = click .UNPROCESSED ,
47
51
callback = set_mode ,
48
52
expose_value = False ,
49
53
help = "Update hub.datalad.org data" ,
50
54
)
51
55
@click .option (
52
56
"--osf" ,
53
- flag_value = "osf" ,
57
+ flag_value = RepoHost .OSF ,
58
+ type = click .UNPROCESSED ,
54
59
callback = set_mode ,
55
60
expose_value = False ,
56
61
help = "Update OSF data" ,
@@ -61,7 +66,7 @@ def set_mode(
61
66
is_flag = True ,
62
67
help = "Regenerate the README from the JSON file without querying" ,
63
68
)
64
- def main (log_level : int , regen_readme : bool , mode : set [str ] | None = None ) -> None :
69
+ def main (log_level : int , regen_readme : bool , mode : set [RepoHost ] | None = None ) -> None :
65
70
if regen_readme and mode :
66
71
raise click .UsageError ("--regen-readme is mutually exclusive with mode options" )
67
72
@@ -78,14 +83,16 @@ def main(log_level: int, regen_readme: bool, mode: set[str] | None = None) -> No
78
83
record = RepoRecord ()
79
84
80
85
reports : list [str ] = []
86
+ if mode is None :
87
+ mode = set (RepoHost )
81
88
if not regen_readme :
82
- if mode is None or "github" in mode :
89
+ if RepoHost . GITHUB in mode :
83
90
reports .extend (record .update_github (get_ghtoken ()))
84
- if mode is None or "osf" in mode :
91
+ if RepoHost . OSF in mode :
85
92
reports .extend (record .update_osf ())
86
- if mode is None or "gin" in mode :
93
+ if RepoHost . GIN in mode :
87
94
reports .extend (record .update_gin (os .environ ["GIN_TOKEN" ]))
88
- if mode is None or "hub.datalad.org" in mode :
95
+ if RepoHost . HUB_DATALAD_ORG in mode :
89
96
reports .extend (
90
97
record .update_hub_datalad_org (os .environ ["HUB_DATALAD_ORG_TOKEN" ])
91
98
)
0 commit comments