All Downloads are FREE. Search and download functionalities are using the official Maven repository.

phraseapp.UploadTask.kt Maven / Gradle / Ivy

Go to download

A Gradle plugin to upload your mobile translations to Phrase and download all locales.

The newest version!
package phraseapp

import kotlinx.coroutines.runBlocking
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.provider.MapProperty
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.TaskAction
import phraseapp.internal.platforms.Platform
import phraseapp.internal.printers.FileOperation
import phraseapp.internal.printers.FileOperationImpl
import phraseapp.network.PhraseAppNetworkDataSource
import phraseapp.repositories.operations.Uploader

abstract class UploadTask : DefaultTask() {
    @get:Input
    abstract val baseUrl: Property

    @get:Input
    abstract val authToken: Property

    @get:Input
    abstract val projectId: Property

    @get:Input
    abstract val resFolders: MapProperty>

    @get:Input
    abstract val platform: Property

    @get:Input
    abstract val output: Property

    @get:Input
    abstract val mainLocaleId: Property

    @TaskAction
    fun upload() = runBlocking {
        try {
            val network = PhraseAppNetworkDataSource.newInstance(
                baseUrl.get(),
                authToken.get(),
                projectId.get(),
                platform.get().format
            )
            val fileOperation: FileOperation = FileOperationImpl()
            Uploader(platform.get(), output.get(), fileOperation, network)
                .upload(mainLocaleId.get(), resFolders.get())
            logger.info("All string have been uploaded!")
        } catch (error: Throwable) {
            throw GradleException("Something wrong happened during the uploading", error)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy