Code Monkey home page Code Monkey logo

Comments (8)

michel-kraemer avatar michel-kraemer commented on July 22, 2024 2

I've just added the properties path and relativePath. The eachFile action now behaves similar to that of the Copy task. You can even specify a relative directory in the name property and it will work (e.g. name = "foo/test.txt").

I will release 5.3.0 soon but I want to think a little bit more about how to handle duplicate files (maybe with DuplicatesStrategy?). I'll keep you posted.

from gradle-download-task.

michel-kraemer avatar michel-kraemer commented on July 22, 2024 2

gradle-download-task 5.3.0 has just been released. Have fun! Let me know if there is anything else missing. Thanks!

from gradle-download-task.

michel-kraemer avatar michel-kraemer commented on July 22, 2024 1

The name property works similar to that of the built-in Copy task (https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Copy.html and https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCopyDetails.html). You can only change the name of the destination file but not the path. The Copy task offers a relativePath property. I will add something similar to gradle-download-task. Please stay tuned...

from gradle-download-task.

michel-kraemer avatar michel-kraemer commented on July 22, 2024

Please have a look at the following example and let me know what is missing:
https://github.com/michel-kraemer/gradle-download-task/blob/master/examples/groovy/multiple-files-rename/build.gradle

I suppose you also want to specify a different target path for each file and not only a different filename, right?

from gradle-download-task.

marceloverdijk avatar marceloverdijk commented on July 22, 2024

Hi Michel, thx for your swift reply.

Yes indeed, I also would like to specify a different target path..

I tried something the path to the url mapping like:

ext.urls = [
    'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD': 'foo/config.guess',
    'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD': 'bar/config.sub'
]

task downloadFiles(type: Download) {
    src urls.keySet()
    dest buildDir
    eachFile { f ->
        f.name = urls[f.sourceURL.toString()]
    }
}

but that gives a java.nio.file.NoSuchFileException.

from gradle-download-task.

andrewparmet avatar andrewparmet commented on July 22, 2024

I'm running into this as well: https://github.com/andrewparmet/buf-publisher/pull/1/checks

Here's my config:

fun versionsToPublish(): List<Version> =
    listOf(
        "1.0.0",
        "1.1.0",
        "1.1.1",
        "1.2.0",
        "1.2.1",
        "1.3.0",
        "1.3.1",
        "1.4.0",
        "1.5.0",
        "1.6.0",
        "1.7.0",
        "1.8.0"
    ).flatMap { version ->
        listOf(Os.MAC, Os.WINDOWS, Os.LINUX).flatMap { os ->
            os.architectures.map { arch ->
                Version(version, os, arch)
            }
        }
    }

tasks.register<Download>("downloadBinaries") {
    val urls =
        versionsToPublish().associate {
            "https://github.com/bufbuild/buf/releases/download/v${it.version}/${it.fileName}" to it.version
        }

    src(urls.keys)

    eachFile {
        name = "${urls[sourceURL.toString()]}/$name"
    }

    onlyIfModified(true)

    dest("$buildDir/buf")
}

from gradle-download-task.

andrewparmet avatar andrewparmet commented on July 22, 2024

Oddly enough if I allow the task to fail first then a subsequent Gradle invocation succeeds:

E.g. my CI config:

      - name: Download binaries
        continue-on-error: true
        uses: gradle/gradle-build-action@v2
        with:
          arguments: downloadBinaries

      - name: Build
        uses: gradle/gradle-build-action@v2
        with:
          arguments: publishToMavenLocal build --info

from gradle-download-task.

marceloverdijk avatar marceloverdijk commented on July 22, 2024

Thx @michel-kraemer !!

from gradle-download-task.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.