Add profiling option, update CLI displayed version.
This commit is contained in:
parent
8d461e2cc4
commit
43008cf0d7
@ -68,6 +68,12 @@ abstract class AbstractBuildCommand extends AbstractSubCommand {
|
||||
)
|
||||
boolean dryRun
|
||||
|
||||
@CommandLine.Option(
|
||||
names = ['--profile'],
|
||||
description = 'Log elapsed times for build steps.'
|
||||
)
|
||||
boolean profile
|
||||
|
||||
protected StaticSiteGenerator staticSiteGenerator = null
|
||||
|
||||
protected final Integer doSingleBuild(String buildName) {
|
||||
@ -77,6 +83,7 @@ abstract class AbstractBuildCommand extends AbstractSubCommand {
|
||||
def groovyClassLoader = new GroovyClassLoader(this.class.classLoader)
|
||||
|
||||
if (this.gradle) {
|
||||
def gradleStartTime = System.currentTimeMillis()
|
||||
def projectConnection = GradleConnector.newConnector()
|
||||
.forProjectDirectory(
|
||||
this.commonCliOptions.projectDir.toPath().resolve(this.gradleProjectDir).toFile()
|
||||
@ -97,6 +104,11 @@ abstract class AbstractBuildCommand extends AbstractSubCommand {
|
||||
|
||||
projectConnection.newBuild().forTasks('ssgJars').run()
|
||||
projectConnection.close()
|
||||
|
||||
if (this.profile) {
|
||||
def gradleElapsedTime = System.currentTimeMillis() - gradleStartTime
|
||||
logger.info("Gradle connection elapsed time: ${gradleElapsedTime / 1000} seconds")
|
||||
}
|
||||
}
|
||||
|
||||
this.libDirs.each { libDir ->
|
||||
@ -123,6 +135,8 @@ abstract class AbstractBuildCommand extends AbstractSubCommand {
|
||||
)
|
||||
}
|
||||
|
||||
def buildStartTime = System.currentTimeMillis()
|
||||
|
||||
final Collection<Diagnostic> diagnostics = this.staticSiteGenerator.doBuild(
|
||||
this.commonCliOptions.projectDir,
|
||||
buildName,
|
||||
@ -130,6 +144,11 @@ abstract class AbstractBuildCommand extends AbstractSubCommand {
|
||||
this.scriptArgs ?: [:]
|
||||
)
|
||||
|
||||
def buildElapsedTime = System.currentTimeMillis() - buildStartTime
|
||||
if (this.profile) {
|
||||
logger.info("Build $buildName elapsed time: ${buildElapsedTime / 1000} seconds")
|
||||
}
|
||||
|
||||
if (!diagnostics.isEmpty()) {
|
||||
diagnostics.each {
|
||||
logger.error(it.message)
|
||||
|
||||
@ -5,7 +5,7 @@ import picocli.CommandLine
|
||||
@CommandLine.Command(
|
||||
name = 'ssg',
|
||||
mixinStandardHelpOptions = true,
|
||||
version = '0.4.0',
|
||||
version = '0.6.0-SNAPSHOT',
|
||||
description = 'A static site generator which can interface with Gradle for high extensibility.',
|
||||
subcommands = [SsgInit, SsgBuild, SsgWatch]
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user