• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package dagger.hilt.android.plugin.util
2 
3 import org.gradle.api.artifacts.transform.CacheableTransform
4 import org.gradle.api.artifacts.transform.InputArtifact
5 import org.gradle.api.artifacts.transform.TransformAction
6 import org.gradle.api.artifacts.transform.TransformOutputs
7 import org.gradle.api.artifacts.transform.TransformParameters
8 import org.gradle.api.file.FileSystemLocation
9 import org.gradle.api.provider.Provider
10 import org.gradle.api.tasks.Classpath
11 
12 /**
13  * A transform that registers the input file (usually a jar or a class) as an output and thus
14  * changing from one artifact type to another.
15  */
16 @CacheableTransform
17 abstract class CopyTransform : TransformAction<TransformParameters.None> {
18   @get:Classpath
19   @get:InputArtifact
20   abstract val inputArtifactProvider: Provider<FileSystemLocation>
21 
transformnull22   override fun transform(outputs: TransformOutputs) {
23     val input = inputArtifactProvider.get().asFile
24     when {
25       input.isDirectory -> outputs.dir(input)
26       input.isFile -> outputs.file(input)
27       else -> error("File/directory does not exist: ${input.absolutePath}")
28     }
29   }
30 }
31