diff --git a/src/update_tools.sh b/src/update_tools.sh index 9345078913362c01d1d6c54e51433071c8aacf1a..57af5db8b119176f94fe0ac4b28043b3cd94dd91 100755 --- a/src/update_tools.sh +++ b/src/update_tools.sh @@ -8,64 +8,85 @@ tool="" version="" while getopts "h?v:t:p:" opt; do - case "$opt" in + case "${opt}" in h|\?) echo "update_tools.sh -t toolname -v tool_version -p tool_previous_version" exit 0 ;; v) - version=$OPTARG + version=${OPTARG} ;; p) - prev_version=$OPTARG + prev_version=${OPTARG} ;; t) - tool=$OPTARG + tool=${OPTARG} ;; esac done -echo "tool=$tool, version='$version'" +echo "tool=${tool}, version='${version}', previous version='${version}'" -docker_tool_dir="src/docker_modules/"$tool"/" -echo $docker_tool_dir -if [ -d $docker_tool_dir ]; then - echo "docker module found for $tool." - if [ -d $docker_tool_dir$version ]; then +docker_tool_dir="src/docker_modules/"${tool}"/" +echo ${docker_tool_dir} +if [ -d ${docker_tool_dir} ]; then + echo "docker module found for ${tool}." + if [ -d ${docker_tool_dir}${version} ]; then echo "version already existing, skipping." else - cp -R $docker_tool_dir$prev_version $docker_tool_dir$version - sed -i "s|$prev_version|$version|g" "$docker_tool_dir$version/Dockerfile" - sed -i "s|$prev_version|$version|g" "$docker_tool_dir$version/docker_init.sh" - echo "docker_module for $tool:$version, done." + cp -R ${docker_tool_dir}${prev_version} ${docker_tool_dir}${version} + sed -i "s|${prev_version}|${version}|g" "${docker_tool_dir}${version}/Dockerfile" + sed -i "s|${prev_version}|${version}|g" "${docker_tool_dir}${version}/docker_init.sh" + echo "docker_module for ${tool}:${version}, done." fi else - echo "docker module not found for '$tool', skipping." + echo "docker module not found for '${tool}', skipping." fi -singularity_tool_dir="src/singularity_modules/"$tool"/" -echo $singularity_tool_dir -if [ -d $singularity_tool_dir ]; then +singularity_tool_dir="src/singularity_modules/"${tool}"/" +echo ${singularity_tool_dir} +if [ -d ${singularity_tool_dir} ]; then echo "singularity module found for $tool." - if [ -d $singularity_tool_dir$version ]; then + if [ -d ${singularity_tool_dir}${version} ]; then echo "version already existing, skipping." else - cp -R $singularity_tool_dir$prev_version $singularity_tool_dir$version - sed -i "s|$prev_version|$version|g" "$singularity_tool_dir$version/$tool.def" - sed -i "s|$prev_version|$version|g" "$singularity_tool_dir$version/build.sh" - echo "singularity_module for $tool:$version, done." + cp -R ${singularity_tool_dir}${prev_version} ${singularity_tool_dir}${version} + sed -i "s|${prev_version}|${version}|g" "${singularity_tool_dir}${version}/${tool}.def" + sed -i "s|${prev_version}|${version}|g" "${singularity_tool_dir}${version}/build.sh" + echo "singularity_module for ${tool}:${version}, done." fi else - echo "singularity module not found for '$tool', skipping." + echo "singularity module not found for '${tool}', skipping." fi nf_tool_dir="src/nf_modules/"$tool"/" echo $nf_tool_dir -if [ -d $nf_tool_dir ]; then - echo "nf module found for $tool." - find $nf_tool_dir -maxdepth 1 -mindepth 1 -type f -name "*.config" | - awk "{system(\"sed -i \\\"s|$prev_version|$version|g\\\" \"\$0)}" - echo "nf_module for $tool:$version, done." +if [ -d ${nf_tool_dir} ]; then + echo "nf module found for ${tool}." + find ${nf_tool_dir} -maxdepth 1 -mindepth 1 -type f -name "*.config" | + awk "{system(\"sed -i \\\"s|${prev_version}|${version}|g\\\" \"\$0)}" + echo "nf_module for ${tool}:${version}, done." else - echo "nf module not found for '$tool', skipping." + echo "nf module not found for '${tool}', skipping." +fi + +psmn_modules_dir="src/psmn_modules/.git/" +if [ ! -d ${nf_tool_dir} ]; then + git submodule init && \ + git submodule update +fi +psmn_tool_app_dir="src/psmn_modules/apps/"${tool}"/" +psmn_tool_module_dir="src/psmn_modules/modulefiles/"${tool}"/" +echo ${psmn_tool_app_dir} +if [ -d ${psmn_tool_app_dir} ]; then + echo "psmn module found for ${tool}." + cp ${psmn_tool_app_dir}/install_${prev_version}.sh \ + ${psmn_tool_app_dir}/install_${version}.sh + sed -i "s|$prev_version|$version|g" ${psmn_tool_app_dir}/install_${version}.sh + cp ${psmn_tool_module_dir}/${prev_version}.lua \ + ${psmn_tool_module_dir}/${version}.lua + sed -i "s|${prev_version}|${version}|g" ${psmn_tool_module_dir}/${version}.lua + echo "psmn_module for ${tool}:${version}, done." +else + echo "psmn module not found for '${tool}', skipping." fi