@@ -13,26 +13,26 @@ import std.regex : matchFirst, regex;
1313import std.stdio : writeln;
1414import std.string : strip;
1515
16+ import argparse;
17+
1618import mcl.utils.env : parseEnv, optional;
1719import mcl.utils.json : toJSON;
1820import mcl.utils.nix : nix;
1921import mcl.utils.path : createResultDirs, resultDir, rootDir;
2022
21- export void shard_matrix (string [] args)
23+ @(Command(" shard-matrix" ).Description(" Generate a shard matrix for a flake" ))
24+ struct shard_matrix_args
2225{
23- const params = parseEnv! Params;
24- auto matrix = generateShardMatrix();
25- saveShardMatrix(matrix, params);
26-
26+ @(NamedArgument([" github-output" ]).Placeholder(" output" ).Description(" Output to GitHub Actions" ))
27+ string githubOutput;
2728}
2829
29- struct Params
30+ export int shard_matrix (shard_matrix_args args)
3031{
31- @optional() string githubOutput;
32+ auto matrix = generateShardMatrix();
33+ saveShardMatrix(matrix, args);
34+ return 0 ;
3235
33- void setup ()
34- {
35- }
3636}
3737
3838struct Shard
@@ -138,15 +138,15 @@ unittest
138138
139139}
140140
141- void saveShardMatrix (ShardMatrix matrix, Params params )
141+ void saveShardMatrix (ShardMatrix matrix, shard_matrix_args args )
142142{
143143 const matrixJson = matrix.toJSON();
144144 const matrixString = matrixJson.toString();
145145 infof(" Shard matrix: %s" , matrixJson.toPrettyString);
146146 const envLine = " gen_matrix=" ~ matrixString;
147- if (params .githubOutput != " " )
147+ if (args .githubOutput != " " )
148148 {
149- params .githubOutput.append(envLine);
149+ args .githubOutput.append(envLine);
150150 }
151151 else
152152 {
0 commit comments