/*
 * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
 */

apply plugin: "application"

sourceSets {
    main.kotlin.srcDirs = ['src']
    main.java.srcDirs = ['src']
    main.resources.srcDirs = ['resources']
}

FileTree mdFiles = fileTree(project.rootDir) {
    include '**/*.md'
    exclude '**/build/**'
    exclude '**/.gradle/**'
    exclude '**/node_modules/**'
}

mainClassName = "KnitKt"

run.dependsOn rootProject.getTasksByName("dokka", true)
run.args = mdFiles
run.workingDir = project.rootDir

task knit(dependsOn: run)
