Skip to content

Commit

Permalink
Update to NodeJs plugin 2.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ysb33r committed Jun 5, 2023
1 parent 618e76f commit a44a66d
Show file tree
Hide file tree
Showing 8 changed files with 92 additions and 70 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ plugins {
id 'net.ossindex.audit' version '0.1.1' apply false
id 'org.kordamp.jdeps' version '0.2.0' apply false
id 'fi.linuxbox.download.worker' version '0.3' apply false
id 'org.ysb33r.ivypot' version '0.13.3' apply false
id 'org.ysb33r.ivypot' version '1.0.0' apply false
id 'org.ysb33r.os' version '0.9' apply false
id 'org.ysb33r.cloudci' version '2.5' apply false
id 'org.ysb33r.cloudci.appveyor.testreporter' version '2.5' apply false
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ project_vcs = https://github.com/asciidoctor/asciidoctor-gradle-plugin.g
cglibVersion = 3.3.0
jsoupVersion = 1.13.1
spockVersion = 1.3-groovy-2.5
grolifantVersion = 2.0.0
grolifantVersion = 2.0.2
jacocoVersion = 0.8.6
jrubyGradleVersion = 2.0.2
codenarcVersion = 1.3
nodejsGradleVersion = 1.0.0
nodejsGradleVersion = 2.0.1

org.gradle.daemon = true
org.gradle.parallel = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import org.gradle.api.Project
import org.gradle.api.Task
import org.ysb33r.gradle.nodejs.NodeJSExtension

/** An extension to configure Node.js.
/**
* An extension to configure Node.js.
*
* @since 3.0
*/
Expand All @@ -33,6 +34,6 @@ class AsciidoctorJSNodeExtension extends NodeJSExtension {
}

AsciidoctorJSNodeExtension(Task task) {
super(task, NAME)
super(task, task.project.extensions.getByType(AsciidoctorJSNodeExtension))
}
}
17 changes: 8 additions & 9 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ pluginManagement {
}
rootProject.name = 'asciidoctor-gradle-plugin'

//include 'kindlegen-gradle'
include 'asciidoctoreditorconfig'

['offline-repo', 'jvm'].each {
Expand All @@ -25,12 +24,12 @@ include 'asciidoctoreditorconfig'
// project(":${it}").name = "asciidoctor-gradle-${it}"
//}

//[ 'epub', 'pdf', 'leanpub', 'slides' ].each {
// include "jvm-${it}"
// project(":jvm-${it}").name = "asciidoctor-gradle-jvm-${it}"
//}
[ 'epub', 'pdf', 'leanpub' ].each {
include "jvm-${it}"
project(":jvm-${it}").name = "asciidoctor-gradle-jvm-${it}"
}

//[ 'gems' ].each {
// include it
// project(":${it}").name = "asciidoctor-gradle-jvm-${it}"
//}
[ 'gems' /*, 'slides'*/ ].each {
include it
project(":${it}").name = "asciidoctor-gradle-jvm-${it}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.SkipWhenEmpty
import org.gradle.api.tasks.options.Option
import org.gradle.util.GradleVersion
import org.ysb33r.grolifant.api.core.ProjectOperations

import java.util.concurrent.Callable

Expand All @@ -48,9 +49,9 @@ abstract class AbstractExportBaseTask extends DefaultTask {
private final static boolean GRADLE_GE_4_8 = GradleVersion.current() >= GradleVersion.version('4.8')
private final static String HTML_EXT = '.html'
private final List<Object> slideInputFiles = []
private final ProjectOperations projectOperations
private Object outputDir
private Callable<Profile> profileProvider
// private Provider<Map<String, Object>> parametersProvider
private Integer height
private Integer width

Expand Down Expand Up @@ -244,6 +245,10 @@ abstract class AbstractExportBaseTask extends DefaultTask {
}
}

protected AbstractExportBaseTask() {
this.projectOperations = ProjectOperations.find(project)
}

/** The list of profiles supported by this conversion task.
*
* @return List of profiles. Never {@code null} or empty.
Expand All @@ -258,6 +263,18 @@ abstract class AbstractExportBaseTask extends DefaultTask {
*/
abstract protected String outputFileNameFromInput(File input)

/**
* Access to {@link ProjectOperations}.
*
* @return {@code ProjecOperations} that is associated with the current project.
*
* @since 4.0
*/
@Internal
protected ProjectOperations getProjectOperations() {
this.projectOperations
}

@CompileDynamic
private void checkTaskDependencies(Iterable<Object> tasks) {
dependsOn tasks.findAll {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.SelfResolvingDependency
import org.ysb33r.gradle.nodejs.NpmPackageDescriptor

import static org.ysb33r.gradle.nodejs.utils.npm.NpmExecutor.getPackageInstallationFolder
import org.ysb33r.gradle.nodejs.utils.npm.NpmExecutor
import org.ysb33r.grolifant.api.core.ProjectOperations

/** Extension to configure <a href="https://github.com/astefanutti/decktape">decktape</a> and
* <a href="https://github.com/GoogleChrome/puppeteer">puppeteer</a>.
Expand Down Expand Up @@ -61,11 +61,9 @@ class DeckTapeExtension {
*/
@SuppressWarnings('UnnecessaryGetter')
Configuration getConfiguration() {
final NodeJSDependencyFactory factory = new NodeJSDependencyFactory(
project,
nodejs,
npm
)
final ProjectOperations po = ProjectOperations.find(project)
final NodeJSDependencyFactory factory = new NodeJSDependencyFactory(po, nodejs, npm)
final NpmExecutor npmExecutor = new NpmExecutor(po, nodejs, npm)

// Ensure puppeteer is installed first
final List<SelfResolvingDependency> deps = [
Expand All @@ -74,7 +72,7 @@ class DeckTapeExtension {
]

File preGypBinPath = new File(
getPackageInstallationFolder(project, nodejs, npm, (NpmPackageDescriptor) deps[1]),
npmExecutor.getPackageInstallationFolder((NpmPackageDescriptor) deps[1]),
'bin'
)

Expand All @@ -89,6 +87,7 @@ class DeckTapeExtension {
)
}

@Deprecated
File getToolingWorkDir() {
npm.homeDirectory
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import org.asciidoctor.gradle.js.nodejs.AsciidoctorJSNodeExtension
import org.asciidoctor.gradle.js.nodejs.AsciidoctorJSNpmExtension
import org.asciidoctor.gradle.slides.export.base.AbstractExportBaseTask
import org.gradle.api.Action
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
Expand All @@ -32,6 +33,8 @@ import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.options.Option
import org.gradle.process.ExecSpec
import org.ysb33r.gradle.nodejs.utils.NodeJSExecutor
import org.ysb33r.gradle.nodejs.utils.npm.NpmExecutor
import org.ysb33r.grolifant.api.core.ProjectOperations

import static org.asciidoctor.gradle.base.slides.Profile.BESPOKE
import static org.asciidoctor.gradle.base.slides.Profile.DECK_JS
Expand All @@ -41,7 +44,6 @@ import static org.asciidoctor.gradle.base.slides.Profile.GENERIC
import static org.asciidoctor.gradle.base.slides.Profile.IMPRESS_JS
import static org.asciidoctor.gradle.base.slides.Profile.REMARK_JS
import static org.asciidoctor.gradle.base.slides.Profile.REVEAL_JS
import static org.asciidoctor.gradle.js.nodejs.core.NodeJSUtils.initPackageJson
import static org.ysb33r.grolifant.api.v4.ClosureUtils.configureItem

/** Conversion task that will convert from a set of
Expand Down Expand Up @@ -73,6 +75,8 @@ class DeckTapeTask extends AbstractExportBaseTask {
private String range
private Integer interSlidePause
private Integer loadPause
private final NpmExecutor npmExecutor
private final Provider<String> versionProvider

static class ScreenShots {

Expand Down Expand Up @@ -158,7 +162,14 @@ class DeckTapeTask extends AbstractExportBaseTask {

DeckTapeTask() {
super()
ProjectOperations po = ProjectOperations.find(project)
decktape = project.extensions.getByType(DeckTapeExtension)
npmExecutor = new NpmExecutor(
po,
project.extensions.getByType(AsciidoctorJSNodeExtension),
project.extensions.getByType(AsciidoctorJSNpmExtension)
)
this.versionProvider = po.projectTools.versionProvider
}

/** Use a generic profile.
Expand Down Expand Up @@ -316,9 +327,9 @@ class DeckTapeTask extends AbstractExportBaseTask {
profileToUse.addAll('--key', genericKeyStroke)
}

File home = decktape.toolingWorkDir
File home = project.extensions.getByType(AsciidoctorJSNpmExtension).homeDirectory
File decktapeExecutable = new File(home, 'node_modules/decktape/decktape.js')
File nodejs = project.extensions.getByType(AsciidoctorJSNodeExtension).resolvableNodeExecutable.executable
File nodejs = project.extensions.getByType(AsciidoctorJSNodeExtension).executable.get()

Closure configurator = { File sourceFile, File destFile, ExecSpec spec ->
spec.with {
Expand All @@ -333,13 +344,7 @@ class DeckTapeTask extends AbstractExportBaseTask {
}
}

initPackageJson(
home,
"${project.name}-${name}",
project,
project.extensions.getByType(AsciidoctorJSNodeExtension),
project.extensions.getByType(AsciidoctorJSNpmExtension)
)
npmExecutor.initPkgJson("${project.name}-${name}", versionProvider)

decktape.configuration.resolve()
Set<File> convertibles = slides.get()
Expand Down Expand Up @@ -371,6 +376,7 @@ class DeckTapeTask extends AbstractExportBaseTask {
*/
@SuppressWarnings('DuplicateStringLiteral')
private List<String> buildOptions() {
File wd = project.extensions.getByType(AsciidoctorJSNpmExtension).homeDirectory
if (height && !width || !height && width) {
throw new IllegalArgumentException('Must specify both height and width, not just one.')
}
Expand All @@ -391,7 +397,7 @@ class DeckTapeTask extends AbstractExportBaseTask {
if (screenshots.format != NONE) {
args.addAll(
'--screenshots',
'--screenshots-directory', AsciidoctorUtils.getRelativePathToFsRoot(decktape.toolingWorkDir),
'--screenshots-directory', AsciidoctorUtils.getRelativePathToFsRoot(wd),
'--screenshots-format', screenshots.format
)

Expand Down
72 changes: 36 additions & 36 deletions testfixtures/offline-repo/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fi.linuxbox.gradle.download.worker.DownloadWorkerTask
import org.ysb33r.gradle.ivypot.OfflineRepositorySync

apply plugin: 'base'
apply plugin: 'fi.linuxbox.download.worker'
Expand All @@ -9,12 +9,12 @@ repositories {
mavenCentral()
}

syncRemoteRepositories {
tasks.named('syncRemoteRepositories', OfflineRepositorySync) {

group 'Off-line repository'
description 'Build Ivy repository from configurations'

repoRoot project.ext.offlineRepoRoot
repoDetails { root = project.ext.offlineRepoRoot }

inputs.file file("${rootProject.projectDir}/module-versions.properties")
outputs.files project.ext.offlineRepoDescriptionFile
Expand All @@ -24,7 +24,7 @@ syncRemoteRepositories {
mavenCentral()
maven { url 'https://plugins.gradle.org/m2/' }

if (version.endsWith('-SNAPSHOT')) {
if (project.version.toString().endsWith('-SNAPSHOT')) {
mavenLocal()
}
}
Expand All @@ -34,41 +34,41 @@ syncRemoteRepositories {
rootUri = 'https://nodejs.org/dist/'
artifactPattern = 'v[revision]/[module]-v[revision]-[classifier].[ext]'
}
}
}

addAllProjects()

doLast {
project.ext.offlineRepoDescriptionFile.withWriter { w ->
w.println 'repositories {'
w.print ' ' * 4
w.println 'ivy {'
w.print ' ' * 8
w.println "name 'OfflineRepo'"
w.print ' ' * 8
w.println "layout 'gradle'"
w.print ' ' * 8
w.println "url '${file(repoRoot).absoluteFile.toURI()}'"
w.print ' ' * 4
w.println '}'
w.println '}'
}

file("${project.ext.offlineRepoDescriptionFile}.kts").withWriter { w ->
w.println 'repositories {'
w.print ' ' * 4
w.println 'ivy {'
w.print ' ' * 8
w.println 'name = "OfflineRepo"'
w.print ' ' * 8
w.println 'layout("gradle")'
w.print ' ' * 8
w.println "url = uri(\"${file(repoRoot).absoluteFile.toURI()}\")"
w.print ' ' * 4
w.println '}'
w.println '}'
}
}
// doLast {
// project.ext.offlineRepoDescriptionFile.withWriter { w ->
// w.println 'repositories {'
// w.print ' ' * 4
// w.println 'ivy {'
// w.print ' ' * 8
// w.println "name 'OfflineRepo'"
// w.print ' ' * 8
// w.println "layout 'gradle'"
// w.print ' ' * 8
// w.println "url '${file(repoRoot).absoluteFile.toURI()}'"
// w.print ' ' * 4
// w.println '}'
// w.println '}'
// }
//
// file("${project.ext.offlineRepoDescriptionFile}.kts").withWriter { w ->
// w.println 'repositories {'
// w.print ' ' * 4
// w.println 'ivy {'
// w.print ' ' * 8
// w.println 'name = "OfflineRepo"'
// w.print ' ' * 8
// w.println 'layout("gradle")'
// w.print ' ' * 8
// w.println "url = uri(\"${file(repoRoot).absoluteFile.toURI()}\")"
// w.print ' ' * 4
// w.println '}'
// w.println '}'
// }
// }

onlyIf { !gradle.startParameter.offline }
}
Expand Down

0 comments on commit a44a66d

Please sign in to comment.