from os import listdir
from os.path import isfile, dirname

def getPath(sample):
    if config['entries'][sample]['main']['reads']:
        return config['entries'][sample]['main']['reads']

rule all:
    input: 
        expand("preprocessing/{sample}.fastq.gz", sample=config['entry_order'])

rule gzip_files:
    input:
        lambda wildcards: getPath(wildcards.sample)
    output:
        "preprocessing/{sample, [^.]+}.{extension}"
    threads:
        1
    shell:
        """
        if file "{input}" | grep -q "gzip"; then
            ln `readlink -f "{input}"` "{output}"
        else
            gzip -c "{input}" > "{output}"
        fi
        """