@@ -75,6 +75,33 @@ func exportArtifacts(deployDir string, artifacts []gradle.Artifact) error {
7575 return nil
7676}
7777
78+ func filterVariants (module , variant string , variantsMap gradle.Variants ) (gradle.Variants , error ) {
79+ // if module set: drop all the other modules
80+ if module != "" {
81+ v , ok := variantsMap [module ]
82+ if ! ok {
83+ return nil , fmt .Errorf ("module not found: %s" , module )
84+ }
85+ variantsMap = gradle.Variants {module : v }
86+ }
87+ // if variant not set: use all variants
88+ if variant == "" {
89+ return variantsMap , nil
90+ }
91+ filteredVariants := gradle.Variants {}
92+ for m , variants := range variantsMap {
93+ for _ , v := range variants {
94+ if strings .ToLower (v ) == strings .ToLower (variant ) {
95+ filteredVariants [m ] = append (filteredVariants [m ], v )
96+ }
97+ }
98+ }
99+ if len (filteredVariants ) == 0 {
100+ return nil , fmt .Errorf ("variant: %s not found in any module" , variant )
101+ }
102+ return filteredVariants , nil
103+ }
104+
78105func main () {
79106 var config Configs
80107
@@ -104,7 +131,10 @@ func main() {
104131 failf ("Failed to fetch variants, error: %s" , err )
105132 }
106133
107- filteredVariants := variants .Filter (config .Module , config .Variant )
134+ filteredVariants , err := filterVariants (config .Module , config .Variant , variants )
135+ if err != nil {
136+ failf ("Failed to find buildable variants, error: %s" , err )
137+ }
108138
109139 for module , variants := range variants {
110140 log .Printf ("%s:" , module )
@@ -118,17 +148,6 @@ func main() {
118148 }
119149 fmt .Println ()
120150
121- if len (filteredVariants ) == 0 {
122- if config .Variant != "" {
123- if config .Module == "" {
124- failf ("Variant (%s) not found in any module" , config .Variant )
125- } else {
126- failf ("No variant matching for (%s) in module: [%s]" , config .Variant , config .Module )
127- }
128- }
129- failf ("Module not found: %s" , config .Module )
130- }
131-
132151 started := time .Now ()
133152
134153 args , err := shellquote .Split (config .Arguments )
0 commit comments