Skip to content

Instantly share code, notes, and snippets.


Schalk W. Cronjé ysb33r

  • Andorra
View GitHub Profile
ysb33r / SumSquaresNumbersDiv7SmallerThan100.groovy
Created Apr 15, 2013
Russel Winder did a lightning talk at ACCU 2013 titled "Who needs C++ when you have D and Go": I decided to address the same problem using a one-liner in Groovy
View SumSquaresNumbersDiv7SmallerThan100.groovy
println ((0..<100).step(7).collect{it*it}.sum())
ysb33r / gist:5554324
Last active Dec 17, 2015
I am trying to wrapper a Task class in Gradle to wrap some legacy build tools i.e. GNU Make, SCons etc. This is to help migrating legacy builds to Gradle. The idea is to still call parts of the old build systems and just to collect the artifacts from them. So instead of inheriting from DefaultTask I thought it would be easier to just to extend s…
View gist:5554324
class GnuMake extends DefaultTask {
List<String> targets
Map<String,Object> flags = [:]
ysb33r / publishToBintrayDSLSuggestion.gradle
Last active Dec 17, 2015
Suggested DSL adaptation for publising to Bintray
View publishToBintrayDSLSuggestion.gradle
// FOR THE IMPATIENT: Final solution at the end
// Classic Ivy style to publish to Bintray.
// This requires the package to be pre-created, possibly by manual process on website
// or via call such as
uploadArchives {
repositories {
ivy {
url ''
credentials {
View inlineTaskRecipe.gradle
// Create the task
// The declare the task and adds a body that will be executed everytime the tasks is executed
// Variables pushed in as configuration can be referenced here
// This simple tasks will write a text file containing a list of files
// in a source set. It will also only update the output file, if at least one
// source file has changed.
task myTask << {
outputs.file.singleFile.withWriter { out ->
inputs.sourceFiles.each {
ysb33r / XsltUnitToJUnitXml.xsl
Last active Dec 18, 2015
I do not know if anyone still uses for XSLTUnit ( for new development, but I recently had the requirement to convert the XML created by this framework to a JUnit XML format so that it can be read by other tools such as JUnit that understands this format.
View XsltUnitToJUnitXml.xsl
<?xml version="1.0" encoding="UTF-8"?>
<!-- ============================================================================
(C) Copyright Schalk W. Cronjé 2013
This code snippet is licensed under the Apache License 2.0
See for license details
============================================================================ -->
xmlns:xsl="" version="1.1"
ysb33r / RelativePath.groovy
Last active Nov 29, 2020
The Groovy way to obtain a relative path given two paths.
View RelativePath.groovy
def root= new File('/usr/share')
def full= new File('/usr/share/docs/rpm-4.4')
// Print the relative path of 'full' in relation to 'root'
// Notice that the full path is passed as a parameter to the root.
def relPath= new File( root.toURI().relativize( full.toURI() ).toString() )
ysb33r / Download+Unpack.groovy
Created Jun 19, 2013
groovy-vfs makes downloading & unpacking very simple. The following works well for smaller archives. Once the archive contains thousands of files, it is better to download first and then unpack. (This is due to a performance issue inside VFS2, not groovy-vfs).
View Download+Unpack.groovy
@GrabResolver( name='grysb33r', root='' ),
@Grab( 'org.ysb33r.groovy:groovy-vfs:0.2' ),
@Grab( 'commons-httpclient:commons-httpclient:3.1')
import org.ysb33r.groovy.dsl.vfs.VFS
// This will download the compressed archive from Sourceforge and unpack it to a local directory
new VFS() {
ysb33r / Example.groovy
Last active May 1, 2020
Running Groovy unittests from the command-line
View Example.groovy
class Example {
def hhg() { 42 }
ysb33r / JenkinsBuildFlow.groovy
Last active Dec 19, 2015
An example of a more complex build flow in Jenkins.
View JenkinsBuildFlow.groovy
def partitions=6
def testResults
def buildResult
def staticAnalysisResult
def smokeTestResult
def performanceResult
def buildFlow= { buildResult= build( 'BUILDER' ) }
def performanceFlow= { performanceResult = build('PERFORMANCE')}
ysb33r / JenkinsBuildFlowObjects.groovy
Last active Oct 1, 2016
If you are working with Jenkins BuildFlow plugin you can get some useful information of the returned build() call.
View JenkinsBuildFlowObjects.groovy
// Given that you have kicked off a build according to the DSL syntax
def results = build('RUN_THIS_JOB')
// Get out the name of the job again
// Get the build ID
// Get the build URL