[scoop] automatically activate individual checksums. Fixes #287

This commit is contained in:
Andres Almiray
2021-07-17 19:00:27 +02:00
parent efc3298e8d
commit c186c2d7c1
3 changed files with 13 additions and 1 deletions

View File

@@ -31,6 +31,8 @@ import static org.jreleaser.util.MustacheUtils.applyTemplate;
* @since 0.4.0
*/
public class Checksum implements Domain {
public static final String INDIVIDUAL_CHECKSUM = "individualChecksum";
private final Set<Algorithm> algorithms = new LinkedHashSet<>();
private Boolean individual;
private String name;

View File

@@ -30,6 +30,7 @@ import java.util.ArrayList;
import java.util.List;
import static java.util.Objects.requireNonNull;
import static org.jreleaser.model.Checksum.INDIVIDUAL_CHECKSUM;
import static org.jreleaser.util.StringUtils.isTrue;
/**
@@ -37,7 +38,6 @@ import static org.jreleaser.util.StringUtils.isTrue;
* @since 0.1.0
*/
public abstract class AbstractReleaserBuilder<R extends Releaser> implements ReleaserBuilder<R> {
private static final String INDIVIDUAL_CHECKSUM = "individualChecksum";
protected final List<Path> assets = new ArrayList<>();
protected JReleaserContext context;

View File

@@ -26,6 +26,9 @@ import org.jreleaser.model.ScoopBucket;
import org.jreleaser.util.Env;
import org.jreleaser.util.Errors;
import java.util.Set;
import static org.jreleaser.model.Checksum.INDIVIDUAL_CHECKSUM;
import static org.jreleaser.model.validation.DistributionsValidator.validateArtifactPlatforms;
import static org.jreleaser.model.validation.ExtraPropertiesValidator.mergeExtraProperties;
import static org.jreleaser.model.validation.TemplateValidator.validateTemplate;
@@ -99,5 +102,12 @@ public abstract class ScoopValidator extends Validator {
service.getResolvedToken()));
validateArtifactPlatforms(context, distribution, tool, errors);
// activate individual checksums on matching artifacts
Set<String> fileExtensions = tool.getSupportedExtensions();
distribution.getArtifacts().stream()
.filter(artifact -> fileExtensions.stream().anyMatch(ext -> artifact.getPath().endsWith(ext)))
.filter(artifact -> tool.supportsPlatform(artifact.getPlatform()))
.forEach(artifact -> artifact.getExtraProperties().put(INDIVIDUAL_CHECKSUM, true));
}
}