diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dcc638..7447ca1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# craftbox 0.3.1 + +## MINOR CHANGES + +* `concat_text`: Allow input files to be a mixed bag of gzipped and plain text files (PR #12). + +* `concat_text`: Stream concatenated files to gzip (PR #12). + # craftbox 0.3.0 ## NEW FEATURES diff --git a/README.md b/README.md index d6187bf..c64bd48 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Viash components in craftbox can be run in various ways: ``` mermaid lang="mermaid flowchart TD - A[craftbox v0.3.0] --> B(Viash Hub Launch) + A[craftbox v0.3.1] --> B(Viash Hub Launch) A --> C(Viash CLI) A --> D(Nextflow CLI) A --> E(Seqera Cloud) @@ -53,7 +53,7 @@ flowchart TD ### 1. Via the Viash Hub Launch interface You can run this component directly from the Viash Hub [Launch -interface](https://www.viash-hub.com/launch?package=craftbox&version=v0.3.0&component=concat_rtext&runner=Executable). +interface](https://www.viash-hub.com/launch?package=craftbox&version=v0.3.1&component=concat_rtext&runner=Executable). ![](docs/viash-hub.png) @@ -63,9 +63,9 @@ You can run this component directly from the command line using the Viash CLI. ``` bash -viash run vsh://craftbox@v0.3.0/concat_rtext -- --help +viash run vsh://craftbox@v0.3.1/concat_rtext -- --help -viash run vsh://craftbox@v0.3.0/concat_rtext -- \ +viash run vsh://craftbox@v0.3.1/concat_rtext -- \ --input path/to/input.txt \ --input path/to/compressed.txt.gz \ --output path/to/output.txt @@ -80,7 +80,7 @@ You can run this component as a Nextflow pipeline. ``` bash nextflow run https://packages.viash-hub.com/vsh/craftbox \ - -revision v0.3.0 \ + -revision v0.3.1 \ -main-script target/nextflow/concat_rtext/main.nf \ -latest -resume \ -profile docker \ @@ -109,7 +109,7 @@ component as a dependency: ``` yaml dependencies: - name: concat_rtext - repository: vsh://craftbox@v0.3.0 + repository: vsh://craftbox@v0.3.1 ``` **Tip:** See the [Viash diff --git a/README.qmd b/README.qmd index 2660346..d52704a 100644 --- a/README.qmd +++ b/README.qmd @@ -7,7 +7,7 @@ license <- paste0(package$links$repository, "/blob/main/LICENSE") contributing <- paste0(package$links$repository, "/blob/main/CONTRIBUTING.md") pkg <- package$name -ver <- if (!is.null(package$version)) package$version else "v0.3.0" +ver <- if (!is.null(package$version)) package$version else "v0.3.1" comp <- "concat_rtext" ``` # 🪡📦 `r pkg` diff --git a/_viash.yaml b/_viash.yaml index d07a9c8..f3a7bbf 100644 --- a/_viash.yaml +++ b/_viash.yaml @@ -1,5 +1,5 @@ name: craftbox -version: v0.3.0 +version: v0.3.1 summary: | A collection of custom-tailored scripts and applied utilities built with Viash. description: | @@ -19,8 +19,7 @@ license: MIT links: issue_tracker: https://github.com/viash-hub/craftbox/issues repository: https://github.com/viash-hub/craftbox - viash_version: 0.9.4 - config_mods: | .requirements.commands := ['ps'] +organization: vsh diff --git a/nextflow.config b/nextflow.config index 7f65ff2..a33c730 100644 --- a/nextflow.config +++ b/nextflow.config @@ -1,6 +1,6 @@ manifest { name = "craftbox" - version = "v0.3.0" + version = "v0.3.1" defaultBranch = "main" nextflowVersion = "!>=20.12.1-edge" } diff --git a/src/concat_text/config.vsh.yaml b/src/concat_text/config.vsh.yaml index a76f83e..7a2c6a1 100644 --- a/src/concat_text/config.vsh.yaml +++ b/src/concat_text/config.vsh.yaml @@ -1,5 +1,5 @@ name: concat_text -summary: Concatenate a number of text files +summary: Concatenate multiple (possibly gzipped) text files description: | Concatenate a number of text files, handle gzipped text files gracefully and optionally gzip the output text file. @@ -11,12 +11,13 @@ authors: roles: [ author, maintainer ] - __merge__: /src/_authors/dries_schaumont.yaml roles: [ reviewer ] + - __merge__: /src/_authors/robrecht_cannoodt.yaml + roles: [ contributor ] info: improvements: | - This component could be improved in 2 ways: - 1. Allow for a mix of zipped and plain input files - 2. Allow to specify a compression algorithm for the output + This component could be improved: + 1. Allow to specify a compression algorithm for the output argument_groups: - name: Input arguments @@ -26,14 +27,14 @@ argument_groups: type: file multiple: true required: true - example: input?.txt.gz + example: input.txt.gz - name: Output arguments arguments: - name: "--gzip_output" type: boolean_true description: Should the output be zipped? - name: --output - description: File to write the output to, optionally gzipped. + description: File to write the output to, potentially gzipped. type: file direction: output example: output.txt diff --git a/src/concat_text/script.sh b/src/concat_text/script.sh index 5efab6f..f25c240 100644 --- a/src/concat_text/script.sh +++ b/src/concat_text/script.sh @@ -1,34 +1,65 @@ #!/usr/bin/env bash -set -euo pipefail +set -eo pipefail -TMPDIR=$(mktemp -d "$meta_temp_dir/concat_text-XXXXXX") -function clean_up { - [[ -d "$TMPDIR" ]] && rm -r "$TMPDIR" +## VIASH START +par_input="README.md;README.qmd" +par_output="concatenated_output.txt" +par_compress_output="true" +## VIASH END + +# --- Function to check for GZIP format using the 'file' command --- +is_gzipped() { + # Ensure the file exists and is not empty before checking + if [ ! -s "$1" ]; then + return 1 + fi + # Get the MIME type of the file. The '-b' option omits the filename from the output. + local mime_type + mime_type=$(file -b --mime-type "$1") + + # Check if the MIME type corresponds to gzip. + # application/gzip is standard, while application/x-gzip is also commonly seen. + if [[ "$mime_type" == "application/gzip" || "$mime_type" == "application/x-gzip" ]]; then + return 0 # 0 indicates success (true in bash) + else + return 1 # 1 indicates failure (false in bash) + fi } -trap clean_up EXIT -par_input="$(echo "$par_input" | tr ';' ' ')" +# Read the ;-separated file paths from the input variable into an array +IFS=";" read -ra input_files <<< "$par_input" -echo -n ">> Check if input is gzipped... " -set +eo pipefail -file $par_input | grep -q 'gzip' -is_zipped="$?" -set -euo pipefail -[[ "$is_zipped" == "0" ]] && echo "yes" || echo "no" +# Process the files if the array contains any paths +if [ ${#input_files[@]} -gt 0 ] && [ -n "${input_files[0]}" ]; then -if [[ "$is_zipped" == "0" ]]; then - echo ">> zcat gzipped files" - zcat $par_input > $TMPDIR/contents + # Ensure the output file is empty before we start + > "$par_output" + + echo "Processing files for -> $par_output" + + # Create a subshell for the loop to group all cat/zcat output. + ( + for file in "${input_files[@]}"; do + if [ -z "$file" ]; then continue; fi # Skip empty entries in the array + + if is_gzipped "$file"; then + zcat "$file" + else + cat "$file" + fi + done + ) | if [ "$par_compress_output" = "true" ]; then + # If compression is enabled, pipe the entire stream to gzip + gzip -c >> "$par_output" + else + # Otherwise, just redirect the stream to the plain text file + cat >> "$par_output" + fi + + echo "Finished creating $par_output." else - echo ">> cat plain files" - cat $par_input > $TMPDIR/contents + echo "No input files provided in \$par_input. Exiting." fi -if [ "$par_gzip_output" == true ]; then - echo ">> Zip output file" - gzip $TMPDIR/contents - mv $TMPDIR/contents.gz $par_output -else - mv $TMPDIR/contents $par_output -fi +echo "Script finished successfully." diff --git a/src/concat_text/test.sh b/src/concat_text/test.sh index 1e75223..2e3900d 100644 --- a/src/concat_text/test.sh +++ b/src/concat_text/test.sh @@ -2,6 +2,65 @@ set -euo pipefail +echo ">> Running concat_text.sh script" + +is_gzipped() { + # Ensure the file exists and is not empty + if [ ! -s "$1" ]; then + return 1 + fi + # Get the MIME type of the file + local mime_type + mime_type=$(file -b --mime-type "$1") + + # Check if the MIME type corresponds to gzip. + if [[ "$mime_type" == "application/gzip" || "$mime_type" == "application/x-gzip" ]]; then + return 0 + else + return 1 + fi +} + +compare_files() { + local file1="$1" + local file2="$2" + if [[ ! -f "$file1" || ! -f "$file2" ]]; then + echo "One of the files does not exist: $file1 or $file2" + return 1 + fi + # decompress file 1 if need be + if is_gzipped "$file1"; then + file1=$(mktemp) + zcat "$1" > "$file1" + fi + # decompress file 2 if need be + if is_gzipped "$file2"; then + file2=$(mktemp) + zcat "$2" > "$file2" + fi + + if cmp -s "$file1" "$file2"; then + echo "Files are identical." + return 0 + else + echo "Files differ." + echo "Found:" + if is_gzipped "$file1"; then + zcat "$file1" | od -c + else + cat "$file1" | od -c + fi + echo "Expected:" + if is_gzipped "$file2"; then + zcat "$file2" | od -c + else + cat "$file2" | od -c + fi + return 1 + fi +} + +## TEST RESOURCES echo ">> Creating test input files file[1-3].txt" INPUT_FILE_1="file1.txt" INPUT_FILE_2="file2.txt" @@ -25,46 +84,31 @@ EOF gzip -k "expected_output.txt" +## RUN TESTS echo ">> Run component on 3 plain input files, plain output" $meta_executable \ --input "$INPUT_FILE_1;$INPUT_FILE_2;$INPUT_FILE_3" \ --output "output1.txt" +compare_files "output1.txt" "expected_output.txt" -[[ ! -f "output1.txt" ]] \ - && echo "Output file output1.txt not found!" && exit 1 -[[ $(cmp "output1.txt" "expected_output.txt") ]] \ - && echo "Output file output1.txt is not as expected!" && exit 1 - -echo ">> Run component on 3 zipped input files, plain output" +echo ">> Run component on mixed input files, plain output" $meta_executable \ - --input "$INPUT_FILE_1.gz;$INPUT_FILE_2.gz;$INPUT_FILE_3.gz" \ + --input "$INPUT_FILE_1.gz;$INPUT_FILE_2;$INPUT_FILE_3.gz" \ --output "output2.txt" - -[[ ! -f "output2.txt" ]] \ - && echo "Output file output2.txt not found!" && exit 1 -[[ $(cmp "output2.txt" "expected_output.txt") ]] \ - && echo "Output file output2.txt is not as expected!" && exit 1 +compare_files "output2.txt" "expected_output.txt" echo ">> Run component on 3 plain input files, zipped output" $meta_executable \ --input "$INPUT_FILE_1;$INPUT_FILE_2;$INPUT_FILE_3" \ --output "output3.txt.gz" \ --gzip_output +compare_files "output3.txt.gz" "expected_output.txt.gz" -[[ ! -f "output3.txt.gz" ]] \ - && echo "Output file output3.txt.gz not found!" && exit 1 -[[ $(cmp "output3.txt.gz" "expected_output.txt.gz") ]] \ - && echo "Output file output3.txt.gz is not as expected!" && exit 1 - -echo ">> Run component on 3 zipped input files, zipped output" +echo ">> Run component on mixed input files, zipped output" $meta_executable \ - --input "$INPUT_FILE_1.gz;$INPUT_FILE_2.gz;$INPUT_FILE_3.gz" \ + --input "$INPUT_FILE_1.gz;$INPUT_FILE_2;$INPUT_FILE_3.gz" \ --output "output4.txt.gz" \ --gzip_output - -[[ ! -f "output4.txt.gz" ]] \ - && echo "Output file output4.txt.gz not found!" && exit 1 -[[ $(cmp "output4.txt.gz" "expected_output.txt.gz") ]] \ - && echo "Output file output4.txt.gz is not as expected!" && exit 1 +compare_files "output4.txt.gz" "expected_output.txt.gz" echo ">> Tests done" diff --git a/target/executable/check_disk_space/.config.vsh.yaml b/target/executable/check_disk_space/.config.vsh.yaml index 6ae878a..85a2fc8 100644 --- a/target/executable/check_disk_space/.config.vsh.yaml +++ b/target/executable/check_disk_space/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "check_disk_space" -version: "v0.3.0" +version: "v0.3.1" argument_groups: - name: "Inputs" arguments: @@ -144,7 +144,7 @@ engines: id: "docker" image: "bash:latest" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" entrypoint: [] cmd: null @@ -157,12 +157,11 @@ build_info: output: "target/executable/check_disk_space" executable: "target/executable/check_disk_space/check_disk_space" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -185,7 +184,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/executable/check_disk_space/check_disk_space b/target/executable/check_disk_space/check_disk_space index 7b78b13..2c2627e 100755 --- a/target/executable/check_disk_space/check_disk_space +++ b/target/executable/check_disk_space/check_disk_space @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# check_disk_space v0.3.0 +# check_disk_space v0.3.1 # # This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative # work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -446,10 +446,10 @@ function ViashDockerfile { FROM bash:latest ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component check_disk_space" -LABEL org.opencontainers.image.created="2025-08-28T13:48:17Z" +LABEL org.opencontainers.image.created="2025-11-20T15:16:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox" -LABEL org.opencontainers.image.revision="a1801c5139bbcda244e06affa66d16f7abd5e124" -LABEL org.opencontainers.image.version="v0.3.0" +LABEL org.opencontainers.image.revision="4acf73e0255554766186f4016986782c0d25c309" +LABEL org.opencontainers.image.version="v0.3.1" VIASHDOCKER fi @@ -566,7 +566,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm) # ViashHelp: Display helpful explanation about this executable function ViashHelp { - echo "check_disk_space v0.3.0" + echo "check_disk_space v0.3.1" echo "" echo "Check for available disk space on the system." echo "" @@ -648,7 +648,7 @@ while [[ $# -gt 0 ]]; do shift 1 ;; --version) - echo "check_disk_space v0.3.0" + echo "check_disk_space v0.3.1" exit ;; --tmp_space_required) @@ -783,7 +783,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then # determine docker image id if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then - VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/check_disk_space:v0.3.0' + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/check_disk_space:v0.3.1' fi # print dockerfile diff --git a/target/executable/concat_text/.config.vsh.yaml b/target/executable/concat_text/.config.vsh.yaml index 67e3184..e27c781 100644 --- a/target/executable/concat_text/.config.vsh.yaml +++ b/target/executable/concat_text/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "concat_text" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Toni Verbeiren" roles: @@ -26,6 +26,22 @@ authors: - name: "Data Intuitive" href: "https://www.data-intuitive.com" role: "Data Scientist" +- name: "Robrecht Cannoodt" + roles: + - "contributor" + info: + links: + email: "robrecht@data-intuitive.com" + github: "rcannood" + orcid: "0000-0003-3641-729X" + linkedin: "robrechtcannoodt" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Data Science Engineer" + - name: "Open Problems" + href: "https://openproblems.bio" + role: "Core Member" argument_groups: - name: "Input arguments" arguments: @@ -34,7 +50,7 @@ argument_groups: description: "A list of (gzipped) text files." info: null example: - - "input?.txt.gz" + - "input.txt.gz" must_exist: true create_parent: true required: true @@ -50,7 +66,7 @@ argument_groups: direction: "input" - type: "file" name: "--output" - description: "File to write the output to, optionally gzipped." + description: "File to write the output to, potentially gzipped." info: null example: - "output.txt" @@ -64,7 +80,7 @@ resources: - type: "bash_script" path: "script.sh" is_executable: true -summary: "Concatenate a number of text files" +summary: "Concatenate multiple (possibly gzipped) text files" description: "Concatenate a number of text files, handle gzipped text files gracefully\ \ and\noptionally gzip the output text file.\n\nThis component is useful for concatening\ \ fastq files from different lanes, for instance.\n" @@ -73,9 +89,8 @@ test_resources: path: "test.sh" is_executable: true info: - improvements: "This component could be improved in 2 ways:\n 1. Allow for a mix\ - \ of zipped and plain input files\n 2. Allow to specify a compression algorithm\ - \ for the output\n" + improvements: "This component could be improved:\n 1. Allow to specify a compression\ + \ algorithm for the output\n" status: "enabled" scope: image: "public" @@ -156,7 +171,7 @@ engines: id: "docker" image: "alpine:latest" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apk" @@ -175,12 +190,11 @@ build_info: output: "target/executable/concat_text" executable: "target/executable/concat_text/concat_text" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -203,7 +217,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/executable/concat_text/concat_text b/target/executable/concat_text/concat_text index df2eb91..7017482 100755 --- a/target/executable/concat_text/concat_text +++ b/target/executable/concat_text/concat_text @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# concat_text v0.3.0 +# concat_text v0.3.1 # # This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative # work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -14,6 +14,7 @@ # Component authors: # * Toni Verbeiren (author, maintainer) # * Dries Schaumont (reviewer) +# * Robrecht Cannoodt (contributor) set -e @@ -451,12 +452,12 @@ FROM alpine:latest ENTRYPOINT [] RUN apk add --no-cache bash procps file -LABEL org.opencontainers.image.authors="Toni Verbeiren, Dries Schaumont" +LABEL org.opencontainers.image.authors="Toni Verbeiren, Dries Schaumont, Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component concat_text" -LABEL org.opencontainers.image.created="2025-08-28T13:48:17Z" +LABEL org.opencontainers.image.created="2025-11-20T15:16:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox" -LABEL org.opencontainers.image.revision="a1801c5139bbcda244e06affa66d16f7abd5e124" -LABEL org.opencontainers.image.version="v0.3.0" +LABEL org.opencontainers.image.revision="4acf73e0255554766186f4016986782c0d25c309" +LABEL org.opencontainers.image.version="v0.3.1" VIASHDOCKER fi @@ -573,7 +574,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm) # ViashHelp: Display helpful explanation about this executable function ViashHelp { - echo "concat_text v0.3.0" + echo "concat_text v0.3.1" echo "" echo "Concatenate a number of text files, handle gzipped text files gracefully and" echo "optionally gzip the output text file." @@ -584,7 +585,7 @@ function ViashHelp { echo "Input arguments:" echo " --input" echo " type: file, required parameter, multiple values allowed, file must exist" - echo " example: input?.txt.gz" + echo " example: input.txt.gz" echo " A list of (gzipped) text files." echo "" echo "Output arguments:" @@ -595,7 +596,7 @@ function ViashHelp { echo " --output" echo " type: file, output, file must exist" echo " example: output.txt" - echo " File to write the output to, optionally gzipped." + echo " File to write the output to, potentially gzipped." echo "" echo "Viash built in Computational Requirements:" echo " ---cpus=INT" @@ -644,7 +645,7 @@ while [[ $# -gt 0 ]]; do shift 1 ;; --version) - echo "concat_text v0.3.0" + echo "concat_text v0.3.1" exit ;; --input) @@ -768,7 +769,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then # determine docker image id if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then - VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/concat_text:v0.3.0' + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/concat_text:v0.3.1' fi # print dockerfile @@ -1080,6 +1081,10 @@ function interrupt { trap clean_up EXIT trap interrupt INT SIGINT cat > "\$tempscript" << 'VIASHMAIN' +#!/usr/bin/env bash + +set -eo pipefail + ## VIASH START # The following code has been auto-generated by Viash. $( if [ ! -z ${VIASH_PAR_INPUT+x} ]; then echo "${VIASH_PAR_INPUT}" | sed "s#'#'\"'\"'#g;s#.*#par_input='&'#" ; else echo "# par_input="; fi ) @@ -1105,40 +1110,62 @@ $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) ## VIASH END -#!/usr/bin/env bash -set -euo pipefail - -TMPDIR=\$(mktemp -d "\$meta_temp_dir/concat_text-XXXXXX") -function clean_up { - [[ -d "\$TMPDIR" ]] && rm -r "\$TMPDIR" +# --- Function to check for GZIP format using the 'file' command --- +is_gzipped() { + # Ensure the file exists and is not empty before checking + if [ ! -s "\$1" ]; then + return 1 + fi + # Get the MIME type of the file. The '-b' option omits the filename from the output. + local mime_type + mime_type=\$(file -b --mime-type "\$1") + + # Check if the MIME type corresponds to gzip. + # application/gzip is standard, while application/x-gzip is also commonly seen. + if [[ "\$mime_type" == "application/gzip" || "\$mime_type" == "application/x-gzip" ]]; then + return 0 # 0 indicates success (true in bash) + else + return 1 # 1 indicates failure (false in bash) + fi } -trap clean_up EXIT -par_input="\$(echo "\$par_input" | tr ';' ' ')" +# Read the ;-separated file paths from the input variable into an array +IFS=";" read -ra input_files <<< "\$par_input" -echo -n ">> Check if input is gzipped... " -set +eo pipefail -file \$par_input | grep -q 'gzip' -is_zipped="\$?" -set -euo pipefail -[[ "\$is_zipped" == "0" ]] && echo "yes" || echo "no" +# Process the files if the array contains any paths +if [ \${#input_files[@]} -gt 0 ] && [ -n "\${input_files[0]}" ]; then -if [[ "\$is_zipped" == "0" ]]; then - echo ">> zcat gzipped files" - zcat \$par_input > \$TMPDIR/contents + # Ensure the output file is empty before we start + > "\$par_output" + + echo "Processing files for -> \$par_output" + + # Create a subshell for the loop to group all cat/zcat output. + ( + for file in "\${input_files[@]}"; do + if [ -z "\$file" ]; then continue; fi # Skip empty entries in the array + + if is_gzipped "\$file"; then + zcat "\$file" + else + cat "\$file" + fi + done + ) | if [ "\$par_compress_output" = "true" ]; then + # If compression is enabled, pipe the entire stream to gzip + gzip -c >> "\$par_output" + else + # Otherwise, just redirect the stream to the plain text file + cat >> "\$par_output" + fi + + echo "Finished creating \$par_output." else - echo ">> cat plain files" - cat \$par_input > \$TMPDIR/contents + echo "No input files provided in \\\$par_input. Exiting." fi -if [ "\$par_gzip_output" == true ]; then - echo ">> Zip output file" - gzip \$TMPDIR/contents - mv \$TMPDIR/contents.gz \$par_output -else - mv \$TMPDIR/contents \$par_output -fi +echo "Script finished successfully." VIASHMAIN bash "\$tempscript" & wait "\$!" diff --git a/target/executable/csv2fasta/.config.vsh.yaml b/target/executable/csv2fasta/.config.vsh.yaml index c861d16..8ede358 100644 --- a/target/executable/csv2fasta/.config.vsh.yaml +++ b/target/executable/csv2fasta/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "csv2fasta" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Dries Schaumont" roles: @@ -227,7 +227,7 @@ engines: id: "docker" image: "python:slim" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apt" @@ -257,12 +257,11 @@ build_info: output: "target/executable/csv2fasta" executable: "target/executable/csv2fasta/csv2fasta" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -285,7 +284,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/executable/csv2fasta/csv2fasta b/target/executable/csv2fasta/csv2fasta index bfb9354..dfa8505 100755 --- a/target/executable/csv2fasta/csv2fasta +++ b/target/executable/csv2fasta/csv2fasta @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# csv2fasta v0.3.0 +# csv2fasta v0.3.1 # # This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative # work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -458,10 +458,10 @@ RUN pip install --upgrade pip && \ LABEL org.opencontainers.image.authors="Dries Schaumont, Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component csv2fasta" -LABEL org.opencontainers.image.created="2025-08-28T13:48:17Z" +LABEL org.opencontainers.image.created="2025-11-20T15:16:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox" -LABEL org.opencontainers.image.revision="a1801c5139bbcda244e06affa66d16f7abd5e124" -LABEL org.opencontainers.image.version="v0.3.0" +LABEL org.opencontainers.image.revision="4acf73e0255554766186f4016986782c0d25c309" +LABEL org.opencontainers.image.version="v0.3.1" VIASHDOCKER fi @@ -578,7 +578,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm) # ViashHelp: Display helpful explanation about this executable function ViashHelp { - echo "csv2fasta v0.3.0" + echo "csv2fasta v0.3.1" echo "" echo "Convert two columns from a CSV file to FASTA entries. The CSV file can" echo "contain an optional header and each row (other than the header) becomes" @@ -695,7 +695,7 @@ while [[ $# -gt 0 ]]; do shift 1 ;; --version) - echo "csv2fasta v0.3.0" + echo "csv2fasta v0.3.1" exit ;; --input) @@ -879,7 +879,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then # determine docker image id if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then - VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/csv2fasta:v0.3.0' + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/csv2fasta:v0.3.1' fi # print dockerfile diff --git a/target/executable/move_files_to_directory/.config.vsh.yaml b/target/executable/move_files_to_directory/.config.vsh.yaml index fe8d5f2..df0b7f8 100644 --- a/target/executable/move_files_to_directory/.config.vsh.yaml +++ b/target/executable/move_files_to_directory/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "move_files_to_directory" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Dorien Roosen" roles: @@ -135,7 +135,7 @@ engines: id: "docker" image: "debian:latest" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apt" @@ -153,12 +153,11 @@ build_info: output: "target/executable/move_files_to_directory" executable: "target/executable/move_files_to_directory/move_files_to_directory" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -181,7 +180,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/executable/move_files_to_directory/move_files_to_directory b/target/executable/move_files_to_directory/move_files_to_directory index 05c4f67..552c5dc 100755 --- a/target/executable/move_files_to_directory/move_files_to_directory +++ b/target/executable/move_files_to_directory/move_files_to_directory @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# move_files_to_directory v0.3.0 +# move_files_to_directory v0.3.1 # # This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative # work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -454,10 +454,10 @@ RUN apt-get update && \ LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component move_files_to_directory" -LABEL org.opencontainers.image.created="2025-08-28T13:48:17Z" +LABEL org.opencontainers.image.created="2025-11-20T15:16:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox" -LABEL org.opencontainers.image.revision="a1801c5139bbcda244e06affa66d16f7abd5e124" -LABEL org.opencontainers.image.version="v0.3.0" +LABEL org.opencontainers.image.revision="4acf73e0255554766186f4016986782c0d25c309" +LABEL org.opencontainers.image.version="v0.3.1" VIASHDOCKER fi @@ -574,7 +574,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm) # ViashHelp: Display helpful explanation about this executable function ViashHelp { - echo "move_files_to_directory v0.3.0" + echo "move_files_to_directory v0.3.1" echo "" echo "This component copies one or multiple files to the same destination directory," echo "creating the output directory if it doesn't exist." @@ -639,7 +639,7 @@ while [[ $# -gt 0 ]]; do shift 1 ;; --version) - echo "move_files_to_directory v0.3.0" + echo "move_files_to_directory v0.3.1" exit ;; --input) @@ -768,7 +768,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then # determine docker image id if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then - VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/move_files_to_directory:v0.3.0' + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/move_files_to_directory:v0.3.1' fi # print dockerfile diff --git a/target/executable/sync_resources/.config.vsh.yaml b/target/executable/sync_resources/.config.vsh.yaml index 8e0e30f..a1ec241 100644 --- a/target/executable/sync_resources/.config.vsh.yaml +++ b/target/executable/sync_resources/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "sync_resources" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Robrecht Cannoodt" roles: @@ -174,7 +174,7 @@ engines: id: "docker" image: "alpine:3" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apk" @@ -197,12 +197,11 @@ build_info: output: "target/executable/sync_resources" executable: "target/executable/sync_resources/sync_resources" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -225,7 +224,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/executable/sync_resources/sync_resources b/target/executable/sync_resources/sync_resources index d1527e0..4135fe2 100755 --- a/target/executable/sync_resources/sync_resources +++ b/target/executable/sync_resources/sync_resources @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# sync_resources v0.3.0 +# sync_resources v0.3.1 # # This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative # work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -455,10 +455,10 @@ RUN rclone config create s3 s3 anonymous=true RUN rclone config create gs gcs anonymous=true LABEL org.opencontainers.image.authors="Robrecht Cannoodt, Dries Schaumont" LABEL org.opencontainers.image.description="Companion container for running component sync_resources" -LABEL org.opencontainers.image.created="2025-08-28T13:48:16Z" +LABEL org.opencontainers.image.created="2025-11-20T15:16:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox" -LABEL org.opencontainers.image.revision="a1801c5139bbcda244e06affa66d16f7abd5e124" -LABEL org.opencontainers.image.version="v0.3.0" +LABEL org.opencontainers.image.revision="4acf73e0255554766186f4016986782c0d25c309" +LABEL org.opencontainers.image.version="v0.3.1" VIASHDOCKER fi @@ -575,7 +575,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm) # ViashHelp: Display helpful explanation about this executable function ViashHelp { - echo "sync_resources v0.3.0" + echo "sync_resources v0.3.1" echo "" echo "Sync a Viash package's test resources to the local filesystem based on the" echo "the \`.info.test_resources\` field in the \`_viash.yaml\` file. This is useful for" @@ -654,7 +654,7 @@ while [[ $# -gt 0 ]]; do shift 1 ;; --version) - echo "sync_resources v0.3.0" + echo "sync_resources v0.3.1" exit ;; --input) @@ -801,7 +801,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then # determine docker image id if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then - VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/sync_resources:v0.3.0' + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/sync_resources:v0.3.1' fi # print dockerfile diff --git a/target/executable/untar/.config.vsh.yaml b/target/executable/untar/.config.vsh.yaml index f46db34..b82c706 100644 --- a/target/executable/untar/.config.vsh.yaml +++ b/target/executable/untar/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "untar" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Dries Schaumont" roles: @@ -164,7 +164,7 @@ engines: id: "docker" image: "debian:stable-slim" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apt" @@ -182,12 +182,11 @@ build_info: output: "target/executable/untar" executable: "target/executable/untar/untar" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -210,7 +209,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/executable/untar/untar b/target/executable/untar/untar index 71dd059..292f155 100755 --- a/target/executable/untar/untar +++ b/target/executable/untar/untar @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# untar v0.3.0 +# untar v0.3.1 # # This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative # work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -455,10 +455,10 @@ RUN apt-get update && \ LABEL org.opencontainers.image.authors="Dries Schaumont, Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component untar" -LABEL org.opencontainers.image.created="2025-08-28T13:48:16Z" +LABEL org.opencontainers.image.created="2025-11-20T15:16:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox" -LABEL org.opencontainers.image.revision="a1801c5139bbcda244e06affa66d16f7abd5e124" -LABEL org.opencontainers.image.version="v0.3.0" +LABEL org.opencontainers.image.revision="4acf73e0255554766186f4016986782c0d25c309" +LABEL org.opencontainers.image.version="v0.3.1" VIASHDOCKER fi @@ -575,7 +575,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm) # ViashHelp: Display helpful explanation about this executable function ViashHelp { - echo "untar v0.3.0" + echo "untar v0.3.1" echo "" echo "Unpack a .tar file. When the contents of the .tar file is just a single" echo "directory," @@ -646,7 +646,7 @@ while [[ $# -gt 0 ]]; do shift 1 ;; --version) - echo "untar v0.3.0" + echo "untar v0.3.1" exit ;; --input) @@ -776,7 +776,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then # determine docker image id if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then - VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/untar:v0.3.0' + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/craftbox/untar:v0.3.1' fi # print dockerfile diff --git a/target/nextflow/check_disk_space/.config.vsh.yaml b/target/nextflow/check_disk_space/.config.vsh.yaml index 5496851..f211430 100644 --- a/target/nextflow/check_disk_space/.config.vsh.yaml +++ b/target/nextflow/check_disk_space/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "check_disk_space" -version: "v0.3.0" +version: "v0.3.1" argument_groups: - name: "Inputs" arguments: @@ -144,7 +144,7 @@ engines: id: "docker" image: "bash:latest" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" entrypoint: [] cmd: null @@ -157,12 +157,11 @@ build_info: output: "target/nextflow/check_disk_space" executable: "target/nextflow/check_disk_space/main.nf" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -185,7 +184,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/nextflow/check_disk_space/main.nf b/target/nextflow/check_disk_space/main.nf index 162236d..7b1585d 100644 --- a/target/nextflow/check_disk_space/main.nf +++ b/target/nextflow/check_disk_space/main.nf @@ -1,4 +1,4 @@ -// check_disk_space v0.3.0 +// check_disk_space v0.3.1 // // This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative // work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -3031,7 +3031,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "check_disk_space", - "version" : "v0.3.0", + "version" : "v0.3.1", "argument_groups" : [ { "name" : "Inputs", @@ -3202,7 +3202,7 @@ meta = [ "id" : "docker", "image" : "bash:latest", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.3.0", + "target_tag" : "v0.3.1", "namespace_separator" : "/" }, { @@ -3216,13 +3216,12 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/check_disk_space", "viash_version" : "0.9.4", - "git_commit" : "a1801c5139bbcda244e06affa66d16f7abd5e124", - "git_remote" : "https://github.com/viash-hub/craftbox", - "git_tag" : "v0.1.0-11-ga1801c5" + "git_commit" : "4acf73e0255554766186f4016986782c0d25c309", + "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "v0.3.0", + "version" : "v0.3.1", "summary" : "A collection of custom-tailored scripts and applied utilities built with Viash.\n", "description" : "`craftbox` is a curated collection of custom scripts and utilities designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles, `craftbox` components aim for **reusability**, **reproducibility**, and adherence to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow Ready:** Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.\n* **Custom Implementations:** Contains scripts and tools developed for particular tasks that may not be found in broader collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear documentation for components and their parameters.\n * Full exposure of underlying script/tool arguments for fine-grained control.\n * Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.\n * Unit tested where applicable to ensure components function as expected.\n", "viash_version" : "0.9.4", @@ -3232,7 +3231,7 @@ meta = [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + ".engines[.type == 'docker'].target_tag := 'v0.3.1'" ], "keywords" : [ "scripts", @@ -3686,7 +3685,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/check_disk_space", - "tag" : "v0.3.0" + "tag" : "v0.3.1" }, "tag" : "$id" }'''), diff --git a/target/nextflow/check_disk_space/nextflow.config b/target/nextflow/check_disk_space/nextflow.config index ed8a5b6..0e25549 100644 --- a/target/nextflow/check_disk_space/nextflow.config +++ b/target/nextflow/check_disk_space/nextflow.config @@ -2,7 +2,7 @@ manifest { name = 'check_disk_space' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.3.0' + version = 'v0.3.1' description = 'Check for available disk space on the system.\n\nThis component is only useful when working with persistent storage environments\nwhere all workflow steps execute on the same instance or share the same\nstorage volume. That is, running thus component on e.g. AWS Batch or\nother cloud-based systems will not work as expected, since each step\ncan run on a different instance and resources will not be shared.\n\nFor distributed environments, consider integrating resource checks directly\ninto the components that will actually consume the storage, rather than\nusing this standalone check.\n' } diff --git a/target/nextflow/concat_text/.config.vsh.yaml b/target/nextflow/concat_text/.config.vsh.yaml index be61724..387448f 100644 --- a/target/nextflow/concat_text/.config.vsh.yaml +++ b/target/nextflow/concat_text/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "concat_text" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Toni Verbeiren" roles: @@ -26,6 +26,22 @@ authors: - name: "Data Intuitive" href: "https://www.data-intuitive.com" role: "Data Scientist" +- name: "Robrecht Cannoodt" + roles: + - "contributor" + info: + links: + email: "robrecht@data-intuitive.com" + github: "rcannood" + orcid: "0000-0003-3641-729X" + linkedin: "robrechtcannoodt" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Data Science Engineer" + - name: "Open Problems" + href: "https://openproblems.bio" + role: "Core Member" argument_groups: - name: "Input arguments" arguments: @@ -34,7 +50,7 @@ argument_groups: description: "A list of (gzipped) text files." info: null example: - - "input?.txt.gz" + - "input.txt.gz" must_exist: true create_parent: true required: true @@ -50,7 +66,7 @@ argument_groups: direction: "input" - type: "file" name: "--output" - description: "File to write the output to, optionally gzipped." + description: "File to write the output to, potentially gzipped." info: null example: - "output.txt" @@ -64,7 +80,7 @@ resources: - type: "bash_script" path: "script.sh" is_executable: true -summary: "Concatenate a number of text files" +summary: "Concatenate multiple (possibly gzipped) text files" description: "Concatenate a number of text files, handle gzipped text files gracefully\ \ and\noptionally gzip the output text file.\n\nThis component is useful for concatening\ \ fastq files from different lanes, for instance.\n" @@ -73,9 +89,8 @@ test_resources: path: "test.sh" is_executable: true info: - improvements: "This component could be improved in 2 ways:\n 1. Allow for a mix\ - \ of zipped and plain input files\n 2. Allow to specify a compression algorithm\ - \ for the output\n" + improvements: "This component could be improved:\n 1. Allow to specify a compression\ + \ algorithm for the output\n" status: "enabled" scope: image: "public" @@ -156,7 +171,7 @@ engines: id: "docker" image: "alpine:latest" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apk" @@ -175,12 +190,11 @@ build_info: output: "target/nextflow/concat_text" executable: "target/nextflow/concat_text/main.nf" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -203,7 +217,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/nextflow/concat_text/main.nf b/target/nextflow/concat_text/main.nf index 18f7a85..8a0778b 100644 --- a/target/nextflow/concat_text/main.nf +++ b/target/nextflow/concat_text/main.nf @@ -1,4 +1,4 @@ -// concat_text v0.3.0 +// concat_text v0.3.1 // // This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative // work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -12,6 +12,7 @@ // Component authors: // * Toni Verbeiren (author, maintainer) // * Dries Schaumont (reviewer) +// * Robrecht Cannoodt (contributor) //////////////////////////// // VDSL3 helper functions // @@ -3035,7 +3036,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "concat_text", - "version" : "v0.3.0", + "version" : "v0.3.1", "authors" : [ { "name" : "Toni Verbeiren", @@ -3077,6 +3078,32 @@ meta = [ } ] } + }, + { + "name" : "Robrecht Cannoodt", + "roles" : [ + "contributor" + ], + "info" : { + "links" : { + "email" : "robrecht@data-intuitive.com", + "github" : "rcannood", + "orcid" : "0000-0003-3641-729X", + "linkedin" : "robrechtcannoodt" + }, + "organizations" : [ + { + "name" : "Data Intuitive", + "href" : "https://www.data-intuitive.com", + "role" : "Data Science Engineer" + }, + { + "name" : "Open Problems", + "href" : "https://openproblems.bio", + "role" : "Core Member" + } + ] + } } ], "argument_groups" : [ @@ -3088,7 +3115,7 @@ meta = [ "name" : "--input", "description" : "A list of (gzipped) text files.", "example" : [ - "input?.txt.gz" + "input.txt.gz" ], "must_exist" : true, "create_parent" : true, @@ -3111,7 +3138,7 @@ meta = [ { "type" : "file", "name" : "--output", - "description" : "File to write the output to, optionally gzipped.", + "description" : "File to write the output to, potentially gzipped.", "example" : [ "output.txt" ], @@ -3132,7 +3159,7 @@ meta = [ "is_executable" : true } ], - "summary" : "Concatenate a number of text files", + "summary" : "Concatenate multiple (possibly gzipped) text files", "description" : "Concatenate a number of text files, handle gzipped text files gracefully and\noptionally gzip the output text file.\n\nThis component is useful for concatening fastq files from different lanes, for instance.\n", "test_resources" : [ { @@ -3142,7 +3169,7 @@ meta = [ } ], "info" : { - "improvements" : "This component could be improved in 2 ways:\n 1. Allow for a mix of zipped and plain input files\n 2. Allow to specify a compression algorithm for the output\n" + "improvements" : "This component could be improved:\n 1. Allow to specify a compression algorithm for the output\n" }, "status" : "enabled", "scope" : { @@ -3238,7 +3265,7 @@ meta = [ "id" : "docker", "image" : "alpine:latest", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.3.0", + "target_tag" : "v0.3.1", "namespace_separator" : "/", "setup" : [ { @@ -3262,13 +3289,12 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/concat_text", "viash_version" : "0.9.4", - "git_commit" : "a1801c5139bbcda244e06affa66d16f7abd5e124", - "git_remote" : "https://github.com/viash-hub/craftbox", - "git_tag" : "v0.1.0-11-ga1801c5" + "git_commit" : "4acf73e0255554766186f4016986782c0d25c309", + "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "v0.3.0", + "version" : "v0.3.1", "summary" : "A collection of custom-tailored scripts and applied utilities built with Viash.\n", "description" : "`craftbox` is a curated collection of custom scripts and utilities designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles, `craftbox` components aim for **reusability**, **reproducibility**, and adherence to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow Ready:** Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.\n* **Custom Implementations:** Contains scripts and tools developed for particular tasks that may not be found in broader collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear documentation for components and their parameters.\n * Full exposure of underlying script/tool arguments for fine-grained control.\n * Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.\n * Unit tested where applicable to ensure components function as expected.\n", "viash_version" : "0.9.4", @@ -3278,7 +3304,7 @@ meta = [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + ".engines[.type == 'docker'].target_tag := 'v0.3.1'" ], "keywords" : [ "scripts", @@ -3305,6 +3331,10 @@ def innerWorkflowFactory(args) { def rawScript = '''set -e tempscript=".viash_script.sh" cat > "$tempscript" << VIASHMAIN +#!/usr/bin/env bash + +set -eo pipefail + ## VIASH START # The following code has been auto-generated by Viash. $( if [ ! -z ${VIASH_PAR_INPUT+x} ]; then echo "${VIASH_PAR_INPUT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_input='&'#" ; else echo "# par_input="; fi ) @@ -3330,40 +3360,62 @@ $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) ## VIASH END -#!/usr/bin/env bash -set -euo pipefail - -TMPDIR=\\$(mktemp -d "\\$meta_temp_dir/concat_text-XXXXXX") -function clean_up { - [[ -d "\\$TMPDIR" ]] && rm -r "\\$TMPDIR" +# --- Function to check for GZIP format using the 'file' command --- +is_gzipped() { + # Ensure the file exists and is not empty before checking + if [ ! -s "\\$1" ]; then + return 1 + fi + # Get the MIME type of the file. The '-b' option omits the filename from the output. + local mime_type + mime_type=\\$(file -b --mime-type "\\$1") + + # Check if the MIME type corresponds to gzip. + # application/gzip is standard, while application/x-gzip is also commonly seen. + if [[ "\\$mime_type" == "application/gzip" || "\\$mime_type" == "application/x-gzip" ]]; then + return 0 # 0 indicates success (true in bash) + else + return 1 # 1 indicates failure (false in bash) + fi } -trap clean_up EXIT -par_input="\\$(echo "\\$par_input" | tr ';' ' ')" +# Read the ;-separated file paths from the input variable into an array +IFS=";" read -ra input_files <<< "\\$par_input" -echo -n ">> Check if input is gzipped... " -set +eo pipefail -file \\$par_input | grep -q 'gzip' -is_zipped="\\$?" -set -euo pipefail -[[ "\\$is_zipped" == "0" ]] && echo "yes" || echo "no" +# Process the files if the array contains any paths +if [ \\${#input_files[@]} -gt 0 ] && [ -n "\\${input_files[0]}" ]; then -if [[ "\\$is_zipped" == "0" ]]; then - echo ">> zcat gzipped files" - zcat \\$par_input > \\$TMPDIR/contents + # Ensure the output file is empty before we start + > "\\$par_output" + + echo "Processing files for -> \\$par_output" + + # Create a subshell for the loop to group all cat/zcat output. + ( + for file in "\\${input_files[@]}"; do + if [ -z "\\$file" ]; then continue; fi # Skip empty entries in the array + + if is_gzipped "\\$file"; then + zcat "\\$file" + else + cat "\\$file" + fi + done + ) | if [ "\\$par_compress_output" = "true" ]; then + # If compression is enabled, pipe the entire stream to gzip + gzip -c >> "\\$par_output" + else + # Otherwise, just redirect the stream to the plain text file + cat >> "\\$par_output" + fi + + echo "Finished creating \\$par_output." else - echo ">> cat plain files" - cat \\$par_input > \\$TMPDIR/contents + echo "No input files provided in \\\\\\$par_input. Exiting." fi -if [ "\\$par_gzip_output" == true ]; then - echo ">> Zip output file" - gzip \\$TMPDIR/contents - mv \\$TMPDIR/contents.gz \\$par_output -else - mv \\$TMPDIR/contents \\$par_output -fi +echo "Script finished successfully." VIASHMAIN bash "$tempscript" ''' @@ -3746,7 +3798,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/concat_text", - "tag" : "v0.3.0" + "tag" : "v0.3.1" }, "tag" : "$id" }'''), diff --git a/target/nextflow/concat_text/nextflow.config b/target/nextflow/concat_text/nextflow.config index 00643d6..54be526 100644 --- a/target/nextflow/concat_text/nextflow.config +++ b/target/nextflow/concat_text/nextflow.config @@ -2,9 +2,9 @@ manifest { name = 'concat_text' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.3.0' + version = 'v0.3.1' description = 'Concatenate a number of text files, handle gzipped text files gracefully and\noptionally gzip the output text file.\n\nThis component is useful for concatening fastq files from different lanes, for instance.\n' - author = 'Toni Verbeiren, Dries Schaumont' + author = 'Toni Verbeiren, Dries Schaumont, Robrecht Cannoodt' } process.container = 'nextflow/bash:latest' diff --git a/target/nextflow/concat_text/nextflow_schema.json b/target/nextflow/concat_text/nextflow_schema.json index f38d953..53f9db8 100644 --- a/target/nextflow/concat_text/nextflow_schema.json +++ b/target/nextflow/concat_text/nextflow_schema.json @@ -17,7 +17,7 @@ "format": "path", "exists": true, "description": "A list of (gzipped) text files.", - "help_text": "Type: `file`, multiple: `True`, required, direction: `input`, example: `[\"input?.txt.gz\"]`. " + "help_text": "Type: `file`, multiple: `True`, required, direction: `input`, example: `[\"input.txt.gz\"]`. " } } }, @@ -35,7 +35,7 @@ "output": { "type": "string", "format": "path", - "description": "File to write the output to, optionally gzipped.", + "description": "File to write the output to, potentially gzipped.", "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.output.txt\"`, direction: `output`, example: `\"output.txt\"`. ", "default": "$id.$key.output.txt" } diff --git a/target/nextflow/csv2fasta/.config.vsh.yaml b/target/nextflow/csv2fasta/.config.vsh.yaml index 42e5b35..02b8096 100644 --- a/target/nextflow/csv2fasta/.config.vsh.yaml +++ b/target/nextflow/csv2fasta/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "csv2fasta" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Dries Schaumont" roles: @@ -227,7 +227,7 @@ engines: id: "docker" image: "python:slim" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apt" @@ -257,12 +257,11 @@ build_info: output: "target/nextflow/csv2fasta" executable: "target/nextflow/csv2fasta/main.nf" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -285,7 +284,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/nextflow/csv2fasta/main.nf b/target/nextflow/csv2fasta/main.nf index 12ef5a4..997ea01 100644 --- a/target/nextflow/csv2fasta/main.nf +++ b/target/nextflow/csv2fasta/main.nf @@ -1,4 +1,4 @@ -// csv2fasta v0.3.0 +// csv2fasta v0.3.1 // // This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative // work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -3035,7 +3035,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "csv2fasta", - "version" : "v0.3.0", + "version" : "v0.3.1", "authors" : [ { "name" : "Dries Schaumont", @@ -3310,7 +3310,7 @@ meta = [ "id" : "docker", "image" : "python:slim", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.3.0", + "target_tag" : "v0.3.1", "namespace_separator" : "/", "setup" : [ { @@ -3352,13 +3352,12 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/csv2fasta", "viash_version" : "0.9.4", - "git_commit" : "a1801c5139bbcda244e06affa66d16f7abd5e124", - "git_remote" : "https://github.com/viash-hub/craftbox", - "git_tag" : "v0.1.0-11-ga1801c5" + "git_commit" : "4acf73e0255554766186f4016986782c0d25c309", + "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "v0.3.0", + "version" : "v0.3.1", "summary" : "A collection of custom-tailored scripts and applied utilities built with Viash.\n", "description" : "`craftbox` is a curated collection of custom scripts and utilities designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles, `craftbox` components aim for **reusability**, **reproducibility**, and adherence to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow Ready:** Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.\n* **Custom Implementations:** Contains scripts and tools developed for particular tasks that may not be found in broader collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear documentation for components and their parameters.\n * Full exposure of underlying script/tool arguments for fine-grained control.\n * Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.\n * Unit tested where applicable to ensure components function as expected.\n", "viash_version" : "0.9.4", @@ -3368,7 +3367,7 @@ meta = [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + ".engines[.type == 'docker'].target_tag := 'v0.3.1'" ], "keywords" : [ "scripts", @@ -3912,7 +3911,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/csv2fasta", - "tag" : "v0.3.0" + "tag" : "v0.3.1" }, "tag" : "$id" }'''), diff --git a/target/nextflow/csv2fasta/nextflow.config b/target/nextflow/csv2fasta/nextflow.config index d361778..02c5b14 100644 --- a/target/nextflow/csv2fasta/nextflow.config +++ b/target/nextflow/csv2fasta/nextflow.config @@ -2,7 +2,7 @@ manifest { name = 'csv2fasta' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.3.0' + version = 'v0.3.1' description = 'Convert two columns from a CSV file to FASTA entries. The CSV file can\ncontain an optional header and each row (other than the header) becomes\na single FASTA record. One of the two columns will be used as the names\nfor the FASTA entries, while the other become the sequences. The sequences\ncolumn must only contain characters that are valid IUPAC notation for \nnucleotides or a group thereof (wildcard characters).\n' author = 'Dries Schaumont, Robrecht Cannoodt' } diff --git a/target/nextflow/move_files_to_directory/.config.vsh.yaml b/target/nextflow/move_files_to_directory/.config.vsh.yaml index 1ddb6b6..1d71c07 100644 --- a/target/nextflow/move_files_to_directory/.config.vsh.yaml +++ b/target/nextflow/move_files_to_directory/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "move_files_to_directory" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Dorien Roosen" roles: @@ -135,7 +135,7 @@ engines: id: "docker" image: "debian:latest" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apt" @@ -153,12 +153,11 @@ build_info: output: "target/nextflow/move_files_to_directory" executable: "target/nextflow/move_files_to_directory/main.nf" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -181,7 +180,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/nextflow/move_files_to_directory/main.nf b/target/nextflow/move_files_to_directory/main.nf index eda882f..ca53281 100644 --- a/target/nextflow/move_files_to_directory/main.nf +++ b/target/nextflow/move_files_to_directory/main.nf @@ -1,4 +1,4 @@ -// move_files_to_directory v0.3.0 +// move_files_to_directory v0.3.1 // // This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative // work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -3034,7 +3034,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "move_files_to_directory", - "version" : "v0.3.0", + "version" : "v0.3.1", "authors" : [ { "name" : "Dorien Roosen", @@ -3205,7 +3205,7 @@ meta = [ "id" : "docker", "image" : "debian:latest", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.3.0", + "target_tag" : "v0.3.1", "namespace_separator" : "/", "setup" : [ { @@ -3228,13 +3228,12 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/move_files_to_directory", "viash_version" : "0.9.4", - "git_commit" : "a1801c5139bbcda244e06affa66d16f7abd5e124", - "git_remote" : "https://github.com/viash-hub/craftbox", - "git_tag" : "v0.1.0-11-ga1801c5" + "git_commit" : "4acf73e0255554766186f4016986782c0d25c309", + "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "v0.3.0", + "version" : "v0.3.1", "summary" : "A collection of custom-tailored scripts and applied utilities built with Viash.\n", "description" : "`craftbox` is a curated collection of custom scripts and utilities designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles, `craftbox` components aim for **reusability**, **reproducibility**, and adherence to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow Ready:** Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.\n* **Custom Implementations:** Contains scripts and tools developed for particular tasks that may not be found in broader collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear documentation for components and their parameters.\n * Full exposure of underlying script/tool arguments for fine-grained control.\n * Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.\n * Unit tested where applicable to ensure components function as expected.\n", "viash_version" : "0.9.4", @@ -3244,7 +3243,7 @@ meta = [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + ".engines[.type == 'docker'].target_tag := 'v0.3.1'" ], "keywords" : [ "scripts", @@ -3706,7 +3705,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/move_files_to_directory", - "tag" : "v0.3.0" + "tag" : "v0.3.1" }, "tag" : "$id" }'''), diff --git a/target/nextflow/move_files_to_directory/nextflow.config b/target/nextflow/move_files_to_directory/nextflow.config index b038ed2..6aa9007 100644 --- a/target/nextflow/move_files_to_directory/nextflow.config +++ b/target/nextflow/move_files_to_directory/nextflow.config @@ -2,7 +2,7 @@ manifest { name = 'move_files_to_directory' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.3.0' + version = 'v0.3.1' description = 'This component copies one or multiple files to the same destination directory, creating the output directory if it doesn\'t exist.' author = 'Dorien Roosen' } diff --git a/target/nextflow/sync_resources/.config.vsh.yaml b/target/nextflow/sync_resources/.config.vsh.yaml index 9010f73..12b6e8d 100644 --- a/target/nextflow/sync_resources/.config.vsh.yaml +++ b/target/nextflow/sync_resources/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "sync_resources" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Robrecht Cannoodt" roles: @@ -174,7 +174,7 @@ engines: id: "docker" image: "alpine:3" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apk" @@ -197,12 +197,11 @@ build_info: output: "target/nextflow/sync_resources" executable: "target/nextflow/sync_resources/main.nf" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -225,7 +224,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/nextflow/sync_resources/main.nf b/target/nextflow/sync_resources/main.nf index 2f4c546..2c7dbf6 100644 --- a/target/nextflow/sync_resources/main.nf +++ b/target/nextflow/sync_resources/main.nf @@ -1,4 +1,4 @@ -// sync_resources v0.3.0 +// sync_resources v0.3.1 // // This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative // work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -3035,7 +3035,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "sync_resources", - "version" : "v0.3.0", + "version" : "v0.3.1", "authors" : [ { "name" : "Robrecht Cannoodt", @@ -3263,7 +3263,7 @@ meta = [ "id" : "docker", "image" : "alpine:3", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.3.0", + "target_tag" : "v0.3.1", "namespace_separator" : "/", "setup" : [ { @@ -3294,13 +3294,12 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/sync_resources", "viash_version" : "0.9.4", - "git_commit" : "a1801c5139bbcda244e06affa66d16f7abd5e124", - "git_remote" : "https://github.com/viash-hub/craftbox", - "git_tag" : "v0.1.0-11-ga1801c5" + "git_commit" : "4acf73e0255554766186f4016986782c0d25c309", + "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "v0.3.0", + "version" : "v0.3.1", "summary" : "A collection of custom-tailored scripts and applied utilities built with Viash.\n", "description" : "`craftbox` is a curated collection of custom scripts and utilities designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles, `craftbox` components aim for **reusability**, **reproducibility**, and adherence to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow Ready:** Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.\n* **Custom Implementations:** Contains scripts and tools developed for particular tasks that may not be found in broader collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear documentation for components and their parameters.\n * Full exposure of underlying script/tool arguments for fine-grained control.\n * Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.\n * Unit tested where applicable to ensure components function as expected.\n", "viash_version" : "0.9.4", @@ -3310,7 +3309,7 @@ meta = [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + ".engines[.type == 'docker'].target_tag := 'v0.3.1'" ], "keywords" : [ "scripts", @@ -3773,7 +3772,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/sync_resources", - "tag" : "v0.3.0" + "tag" : "v0.3.1" }, "tag" : "$id" }'''), diff --git a/target/nextflow/sync_resources/nextflow.config b/target/nextflow/sync_resources/nextflow.config index aca6fc7..22a530c 100644 --- a/target/nextflow/sync_resources/nextflow.config +++ b/target/nextflow/sync_resources/nextflow.config @@ -2,7 +2,7 @@ manifest { name = 'sync_resources' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.3.0' + version = 'v0.3.1' description = 'Sync a Viash package\'s test resources to the local filesystem based on the\nthe `.info.test_resources` field in the `_viash.yaml` file. This is useful for\ntesting and debugging purposes.\n' author = 'Robrecht Cannoodt, Dries Schaumont' } diff --git a/target/nextflow/untar/.config.vsh.yaml b/target/nextflow/untar/.config.vsh.yaml index fe6b632..54eeffc 100644 --- a/target/nextflow/untar/.config.vsh.yaml +++ b/target/nextflow/untar/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "untar" -version: "v0.3.0" +version: "v0.3.1" authors: - name: "Dries Schaumont" roles: @@ -164,7 +164,7 @@ engines: id: "docker" image: "debian:stable-slim" target_registry: "images.viash-hub.com" - target_tag: "v0.3.0" + target_tag: "v0.3.1" namespace_separator: "/" setup: - type: "apt" @@ -182,12 +182,11 @@ build_info: output: "target/nextflow/untar" executable: "target/nextflow/untar/main.nf" viash_version: "0.9.4" - git_commit: "a1801c5139bbcda244e06affa66d16f7abd5e124" + git_commit: "4acf73e0255554766186f4016986782c0d25c309" git_remote: "https://github.com/viash-hub/craftbox" - git_tag: "v0.1.0-11-ga1801c5" package_config: name: "craftbox" - version: "v0.3.0" + version: "v0.3.1" summary: "A collection of custom-tailored scripts and applied utilities built with\ \ Viash.\n" description: "`craftbox` is a curated collection of custom scripts and utilities\ @@ -210,7 +209,7 @@ package_config: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + - ".engines[.type == 'docker'].target_tag := 'v0.3.1'" keywords: - "scripts" - "custom" diff --git a/target/nextflow/untar/main.nf b/target/nextflow/untar/main.nf index b4726b0..84094bf 100644 --- a/target/nextflow/untar/main.nf +++ b/target/nextflow/untar/main.nf @@ -1,4 +1,4 @@ -// untar v0.3.0 +// untar v0.3.1 // // This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative // work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data @@ -3035,7 +3035,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "untar", - "version" : "v0.3.0", + "version" : "v0.3.1", "authors" : [ { "name" : "Dries Schaumont", @@ -3250,7 +3250,7 @@ meta = [ "id" : "docker", "image" : "debian:stable-slim", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.3.0", + "target_tag" : "v0.3.1", "namespace_separator" : "/", "setup" : [ { @@ -3273,13 +3273,12 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/untar", "viash_version" : "0.9.4", - "git_commit" : "a1801c5139bbcda244e06affa66d16f7abd5e124", - "git_remote" : "https://github.com/viash-hub/craftbox", - "git_tag" : "v0.1.0-11-ga1801c5" + "git_commit" : "4acf73e0255554766186f4016986782c0d25c309", + "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "v0.3.0", + "version" : "v0.3.1", "summary" : "A collection of custom-tailored scripts and applied utilities built with Viash.\n", "description" : "`craftbox` is a curated collection of custom scripts and utilities designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles, `craftbox` components aim for **reusability**, **reproducibility**, and adherence to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow Ready:** Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.\n* **Custom Implementations:** Contains scripts and tools developed for particular tasks that may not be found in broader collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear documentation for components and their parameters.\n * Full exposure of underlying script/tool arguments for fine-grained control.\n * Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.\n * Unit tested where applicable to ensure components function as expected.\n", "viash_version" : "0.9.4", @@ -3289,7 +3288,7 @@ meta = [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.3.0'" + ".engines[.type == 'docker'].target_tag := 'v0.3.1'" ], "keywords" : [ "scripts", @@ -3763,7 +3762,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/untar", - "tag" : "v0.3.0" + "tag" : "v0.3.1" }, "tag" : "$id" }'''), diff --git a/target/nextflow/untar/nextflow.config b/target/nextflow/untar/nextflow.config index d241049..52438a8 100644 --- a/target/nextflow/untar/nextflow.config +++ b/target/nextflow/untar/nextflow.config @@ -2,7 +2,7 @@ manifest { name = 'untar' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.3.0' + version = 'v0.3.1' description = 'Unpack a .tar file. When the contents of the .tar file is just a single directory,\nput the contents of the directory into the output folder instead of that directory.\n' author = 'Dries Schaumont, Robrecht Cannoodt' }