Add checksum CLI option

This commit is contained in:
Alexandre Archambault 2016-02-11 22:44:51 +01:00
parent 7f188340c5
commit 6e5bdd80a1
2 changed files with 18 additions and 3 deletions

View File

@ -50,6 +50,9 @@ case class CommonOptions(
@Help("Maximum number of parallel downloads (default: 6)")
@Short("n")
parallel: Int = 6,
@Help("Checksums")
@Value("checksum1,checksum2,... - end with none to allow for no checksum validation if none are available")
checksum: List[String],
@Recurse
cacheOptions: CacheOptions
) {

View File

@ -173,6 +173,18 @@ class Helper(
)
}
val checksums = {
val splitChecksumArgs = checksum.flatMap(_.split(',')).filter(_.nonEmpty)
if (splitChecksumArgs.isEmpty)
Cache.defaultChecksums
else
splitChecksumArgs.map {
case none if none.toLowerCase == "none" => None
case sumType => Some(sumType)
}
}
val startRes = Resolution(
dependencies.toSet,
forceVersions = forceVersions,
@ -186,7 +198,7 @@ class Helper(
None
val fetchs = cachePolicies.map(p =>
Cache.fetch(caches, p, logger = logger, pool = pool)
Cache.fetch(caches, p, checksums = checksums, logger = logger, pool = pool)
)
val fetchQuiet = coursier.Fetch.from(
repositories,
@ -296,8 +308,8 @@ class Helper(
println(s" Found ${artifacts.length} artifacts")
val tasks = artifacts.map(artifact =>
(Cache.file(artifact, caches, cachePolicies.head, logger = logger, pool = pool) /: cachePolicies.tail)(
_ orElse Cache.file(artifact, caches, _, logger = logger, pool = pool)
(Cache.file(artifact, caches, cachePolicies.head, checksums = checksums, logger = logger, pool = pool) /: cachePolicies.tail)(
_ orElse Cache.file(artifact, caches, _, checksums = checksums, logger = logger, pool = pool)
).run.map(artifact.->)
)