mirror of
https://github.com/MillironX/taxprofiler.git
synced 2024-11-25 07:29:56 +00:00
40 lines
1.7 KiB
Groovy
Executable file
40 lines
1.7 KiB
Groovy
Executable file
//
|
|
// This file holds several Groovy functions that could be useful for any Nextflow pipeline
|
|
//
|
|
|
|
import org.yaml.snakeyaml.Yaml
|
|
|
|
class Utils {
|
|
|
|
//
|
|
// When running with -profile conda, warn if channels have not been set-up appropriately
|
|
//
|
|
public static void checkCondaChannels(log) {
|
|
Yaml parser = new Yaml()
|
|
def channels = []
|
|
try {
|
|
def config = parser.load("conda config --show channels".execute().text)
|
|
channels = config.channels
|
|
} catch(NullPointerException | IOException e) {
|
|
log.warn "Could not verify conda channel configuration."
|
|
return
|
|
}
|
|
|
|
// Check that all channels are present
|
|
def required_channels = ['conda-forge', 'bioconda', 'defaults']
|
|
def conda_check_failed = !required_channels.every { ch -> ch in channels }
|
|
|
|
// Check that they are in the right order
|
|
conda_check_failed |= !(channels.indexOf('conda-forge') < channels.indexOf('bioconda'))
|
|
conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults'))
|
|
|
|
if (conda_check_failed) {
|
|
log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" +
|
|
" There is a problem with your Conda configuration!\n\n" +
|
|
" You will need to set-up the conda-forge and bioconda channels correctly.\n" +
|
|
" Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" +
|
|
" NB: The order of the channels matters!\n" +
|
|
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
}
|
|
}
|
|
}
|