From 01ff76c758df8859ae8b8f3d26aae1fdffab99d5 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Wed, 28 Jun 2017 12:20:18 +0200 Subject: [PATCH] update nextflow version requested and enhance messages --- main.nf | 134 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 56 deletions(-) diff --git a/main.nf b/main.nf index bdf0ea7..e0184bd 100755 --- a/main.nf +++ b/main.nf @@ -7,7 +7,7 @@ vim: syntax=groovy = C O M P I L E - B E A M E R = ================================================================================ @Author -Maxime Garcia [@MaxUlysse] +Maxime Garcia [@MaxUlysse] -------------------------------------------------------------------------------- @Homepage https://github.com/MaxUlysse/compile-beamer @@ -25,16 +25,18 @@ Maxime Garcia [@MaxUlysse] ================================================================================ */ +if (!nextflow.version.matches('>= 0.25.0')) {exit 1, "Nextflow version 0.25.0 or greater is needed to run this workflow"} + version = '1.5' switch (params) { - case {params.help} : - helpMessage(version, grabRevision()) - exit 1 + case {params.help} : + helpMessage() + exit 1 - case {params.version} : - versionMessage(version, grabRevision()) - exit 1 + case {params.version} : + versionMessage() + exit 1 } if (!params.tex) {exit 1, 'No tex file, see --help for more information'} @@ -42,7 +44,7 @@ if (!params.tex) {exit 1, 'No tex file, see --help for more information'} pictures = file(params.pictures) tex = file(params.tex) -startMessage(version, grabRevision()) +startMessage() /* ================================================================================ @@ -51,22 +53,22 @@ startMessage(version, grabRevision()) */ process RunXelatex { - tag {tex} + tag {tex} - publishDir ".", mode: 'move' + publishDir ".", mode: 'move' - input: - file tex - file pictures + input: + file tex + file pictures - output: - file("${tex.baseName}.pdf") into pdf + output: + file("${tex.baseName}.pdf") into pdf - script: - """ - xelatex -shell-escape ${tex.baseName} - xelatex -shell-escape ${tex.baseName} - """ + script: + """ + xelatex -shell-escape ${tex.baseName} + xelatex -shell-escape ${tex.baseName} + """ } /* @@ -75,53 +77,73 @@ process RunXelatex { ================================================================================ */ +def compileBeamerMessage() { + // Display COMPILE-BEAMER message + log.info "COMPILE-BEAMER ~ $version - " + this.grabRevision() + (workflow.commitId ? " [$workflow.commitId]" : "") +} + + def grabRevision() { - return workflow.revision ?: workflow.scriptId.substring(0,10) + // Return the same string executed from github or not + return workflow.revision ?: workflow.commitId ?: workflow.scriptId.substring(0,10) +} + +def helpMessage() { + // Display help message + this.compileBeamerMessage() + log.info " Usage:" + log.info " nextflow run MaxUlysse/compile-beamer --tex --theme " + log.info " --tex" + log.info " Compile the given tex file" + log.info " --help" + log.info " you're reading it" + log.info " --version" + log.info " displays version number" +} + +def minimalInformationMessage() { + // Minimal information message + log.info "Command Line: $workflow.commandLine" + log.info "Project Dir : $workflow.projectDir" + log.info "Launch Dir : $workflow.launchDir" + log.info "Work Dir : $workflow.workDir" + log.info "Tex file : $tex" + log.info "Pictures in : $pictures" } -def helpMessage(version, revision) { - log.info "COMPILE-BEAMER ~ $version - revision: $revision" - log.info " Usage:" - log.info " nextflow run MaxUlysse/compile-beamer --tex --theme " - log.info " --tex" - log.info " Compile the given tex file" - log.info " --help" - log.info " you're reading it" - log.info " --version" - log.info " displays version number" +def nextflowMessage() { + // Nextflow message (version + build) + log.info "N E X T F L O W ~ version $workflow.nextflow.version $workflow.nextflow.build" } -def startMessage(version, revision) { - log.info "COMPILE-BEAMER ~ $version - revision: $revision" - log.info "Command line: $workflow.commandLine" - log.info "Project Dir : $workflow.projectDir" - log.info "Launch Dir : $workflow.launchDir" - log.info "Work Dir : $workflow.workDir" +def startMessage() { + // Display start message + this.compileBeamerMessage() + this.minimalInformationMessage() } -def versionMessage(version, revision) { - log.info "COMPILE-BEAMER" - log.info " version $version" - log.info ((workflow.commitId) ? "Git info : $workflow.repository - $workflow.revision [$workflow.commitId]" : " revision: $revision") - log.info "Project : $workflow.projectDir" - log.info "Directory: $workflow.launchDir" +def versionMessage() { + // Display version message + log.info "COMPILE-BEAMER" + log.info " version $version" + log.info workflow.commitId ? "Git info : $workflow.repository - $workflow.revision [$workflow.commitId]" : " revision : " + this.grabRevision() } workflow.onComplete { - log.info "N E X T F L O W ~ $workflow.nextflow.version - $workflow.nextflow.build" - log.info "COMPILE-BEAMER ~ $version - revision: $revision" - log.info "Command line: $workflow.commandLine" - log.info "Project Dir : $workflow.projectDir" - log.info "Launch Dir : $workflow.launchDir" - log.info "Work Dir : $workflow.workDir" - log.info "Completed at: $workflow.complete" - log.info "Duration : $workflow.duration" - log.info "Success : $workflow.success" - log.info "Exit status : $workflow.exitStatus" - log.info "Error report:" + (workflow.errorReport ?: '-') + // Display end message + this.nextflowMessage() + this.compileBeamerMessage() + this.minimalInformationMessage() + log.info "Completed at: $workflow.complete" + log.info "Duration : $workflow.duration" + log.info "Success : $workflow.success" + log.info "Exit status : $workflow.exitStatus" + log.info "Error report:" + (workflow.errorReport ?: '-') } workflow.onError { - log.info "COMPILE-BEAMER" - log.info "Workflow execution stopped with the following message: $workflow.errorMessage" + // Display error message + this.nextflowMessage() + this.compileBeamerMessage() + log.info "Workflow execution stopped with the following message: $workflow.errorMessage" }