Better convention for outputDir.
This commit is contained in:
parent
13b22b1afa
commit
5975f5110b
@ -75,8 +75,7 @@ class DefaultStaticSiteGenerator implements StaticSiteGenerator {
|
||||
projectDir
|
||||
)
|
||||
def buildScriptToBuildSpecConverter = new BuildScriptToBuildSpecConverter(
|
||||
buildScriptGetter,
|
||||
BuildDelegate.withDefaults(projectDir)
|
||||
buildScriptGetter, { String name -> BuildDelegate.withDefaults(name, projectDir) }
|
||||
)
|
||||
def buildSpec = buildScriptToBuildSpecConverter.convert(buildScriptFqn)
|
||||
|
||||
|
@ -4,14 +4,14 @@ import com.jessebrault.ssg.buildscript.delegates.BuildDelegate
|
||||
import groovy.transform.NullCheck
|
||||
import groovy.transform.TupleConstructor
|
||||
|
||||
import java.util.function.Supplier
|
||||
import java.util.function.Function
|
||||
|
||||
@NullCheck
|
||||
@TupleConstructor(includeFields = true)
|
||||
class BuildScriptToBuildSpecConverter {
|
||||
|
||||
private final BuildScriptGetter buildScriptGetter
|
||||
private final Supplier<BuildDelegate> buildDelegateSupplier
|
||||
private final Function<String, BuildDelegate> buildDelegateFactory
|
||||
|
||||
protected BuildSpec getFromDelegate(String name, BuildDelegate delegate) {
|
||||
new BuildSpec(
|
||||
@ -38,8 +38,7 @@ class BuildScriptToBuildSpecConverter {
|
||||
extending = from.extending
|
||||
}
|
||||
|
||||
def delegate = this.buildDelegateSupplier.get()
|
||||
delegate.outputDir.setConvention(new File(name.replaceAll(/\./, File.separator)))
|
||||
def delegate = this.buildDelegateFactory.apply(name)
|
||||
while (!buildHierarchy.isEmpty()) {
|
||||
def currentScript = buildHierarchy.pop()
|
||||
currentScript.buildClosure.delegate = delegate
|
||||
|
@ -4,6 +4,7 @@ import com.jessebrault.ssg.model.Model
|
||||
import com.jessebrault.ssg.model.Models
|
||||
import com.jessebrault.ssg.text.MarkdownTextConverter
|
||||
import com.jessebrault.ssg.text.TextConverter
|
||||
import com.jessebrault.ssg.util.PathUtil
|
||||
import groowt.util.di.DefaultRegistryObjectFactory
|
||||
import groowt.util.di.RegistryObjectFactory
|
||||
import groowt.util.fp.property.DefaultProperty
|
||||
@ -12,14 +13,16 @@ import groowt.util.fp.provider.DefaultProvider
|
||||
import groowt.util.fp.provider.NamedProvider
|
||||
import groowt.util.fp.provider.Provider
|
||||
|
||||
import java.nio.file.Path
|
||||
import java.util.function.Supplier
|
||||
|
||||
final class BuildDelegate {
|
||||
|
||||
static Supplier<BuildDelegate> withDefaults(File projectDir) {
|
||||
static Supplier<BuildDelegate> withDefaults(String buildName, File projectDir) {
|
||||
return {
|
||||
new BuildDelegate(projectDir).tap {
|
||||
basePackages.convention = [] as Set<String>
|
||||
outputDir.convention = PathUtil.resolve(projectDir, Path.of('dist', buildName))
|
||||
globals.convention = [:]
|
||||
models.convention = [] as Set<Model>
|
||||
textsDirs.convention = [new File(projectDir, 'texts')] as Set<File>
|
||||
|
@ -12,6 +12,10 @@ final class PathUtil {
|
||||
Path.of(base).relativize(Path.of(target)).toString()
|
||||
}
|
||||
|
||||
static File resolve(File base, Path target) {
|
||||
base.toPath().resolve(target).toFile()
|
||||
}
|
||||
|
||||
private PathUtil() {}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user