Mercurial > repos > siwaa > gama_legacy_run
changeset 0:986f43279bca draft
planemo upload for repository https://forgemia.inra.fr/nathalie.rousse/use/-/tree/gama/GAMA_HEADLESS_LEGACY/galaxy-tools/gama_legacy_run commit 14769577c04bcb2781b2d240f1f57a2342169cce-dirty
author | siwaa |
---|---|
date | Fri, 02 Aug 2024 18:03:16 +0000 |
parents | |
children | 0dc2c254d7a9 |
files | gama_legacy_run.xml src/MY_gama-headless.sh src/cmd_gama_headless_legacy_run.sh |
diffstat | 3 files changed, 189 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gama_legacy_run.xml Fri Aug 02 18:03:16 2024 +0000 @@ -0,0 +1,87 @@ +<tool id="gama_legacy_run" name="gama_legacy_run" version="1.0.0"> + + <description>tool running an experiment plan XML file associated with a GAML file (GAMA Headless Legacy mode)</description> + + <requirements> + + <!-- singularity --> + <container type="singularity">oras://registry.forgemia.inra.fr/nathalie.rousse/use/gama_headless:e45168638437055475beeaa614611cb315a56fca</container> + + <!-- image locale + <container type="singularity">/home/nrousse/workspace_git/SIWAA_regroup/USE_branch_gama/use/GAMA_HEADLESS_LEGACY/containers/gama_headless.simg</container --> + </requirements> + + <command detect_errors="aggressive"> + <![CDATA[ + mkdir -p software; mkdir -p exp; + cp $__tool_directory__/src/MY_gama-headless.sh .; + cp $__tool_directory__/src/cmd_gama_headless_legacy_run.sh .; + cp ${model_gaml} exp/model.gaml; + cp ${file_xml} exp/file.xml; + xmlstarlet edit --inplace --update "//Simulation/@sourcePath" --value "model.gaml" exp/file.xml; + xmlstarlet edit --inplace --update "//Simulation/@finalStep" --value "${final_step}" exp/file.xml; + cp -fr /opt/gama-platform software/.; + cp MY_gama-headless.sh software/gama-platform/headless/. ; + chmod -R 777 software; + /bin/bash cmd_gama_headless_legacy_run.sh > exp/RUN.txt; + rm -fr exp/outputs/.workspace*; + zip -r tmp_result exp; + mv tmp_result.zip ${result_zip}; + ]]> + </command> + + <inputs> + + <param name="file_xml" optional="false" type="data" format="xml" + label="XML file of experiment plan (.xml format)"/> + + <param name="model_gaml" optional="false" type="data" format="txt" + label="GAML model (.gaml format)"/> + + <param name="final_step" optional="true" type="integer" + value="1000" min="10" max="2000" + label="final_step" + help="'finalStep' attribute of 'experiment' tag [10, 2000]" /> + + </inputs> + + <outputs> + <data format="zip" name="result_zip" label=".zip file of results folder"/> + </outputs> + + <tests> + </tests> + + <help><![CDATA[ + +Desc: + +----- + +gama_legacy_run.xml tool, running a GAMA Headless in 'Legacy' mode, runs +an experiment plan XML file 'file_xml' (such as XML file generated by +gama_legacy_gen.xml tool) associated with its GAML file 'model_gaml', +allowing some modifications of the plan : 'final_step' modification. + +Inputs: + + - file_xml + - model_gaml + - final_step + +Outputs: + + - result_zip + +Credits: + +-------- + +- Author: Nathalie Rousse nathalie.rousse@inrae.fr +- Copyright: INRAE + + ]]> + </help> + +</tool> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/MY_gama-headless.sh Fri Aug 02 18:03:16 2024 +0000 @@ -0,0 +1,79 @@ +#!/bin/bash + +javaVersion=$(java -version 2>&1 | head -n 1 | cut -d "\"" -f 2) +# Check if good Java version before everything +if [[ ${javaVersion:2} == 17 ]]; then + echo "You should use Java 17 to run GAMA" + echo "Found you using version : $javaVersion" + exit 1 +fi + +memory="0" + +for arg do + shift + case $arg in + -m) + memory="${1}" + shift + ;; + *) + set -- "$@" "$arg" + ;; + esac +done + +if [[ $memory == "0" ]]; then + memory=$(grep Xmx "$( dirname $( realpath "${BASH_SOURCE[0]}" ) )"/../Gama.ini || echo "-Xmx4096m") +else + memory=-Xmx$memory +fi + +workspaceCreate=0 +case "$@" in + *-help*|*-version*|*-validate*|*-test*|*-xml*|*-batch*|*-write-xmi*|*-socket*) + workspaceCreate=1 + ;; +esac + + +echo "******************************************************************" +echo "* GAMA version 1.9.1 *" +echo "* http://gama-platform.org *" +echo "* (c) 2007-2023 UMI 209 UMMISCO IRD/SU & Partners *" +echo "******************************************************************" +passWork=.workspace +# w/ output folder +if [ $workspaceCreate -eq 0 ]; then + # create output folder if not existing + if [ ! -d "${@: -1}" ]; then + mkdir ${@: -1} + fi + # create workspace in output folder + passWork=${@: -1}/.workspace$(find ${@: -1} -name ".workspace*" | wc -l) + mkdir -p $passWork + +# w/o output folder +else + # create workspace in current folder + passWork=.workspace$(find ./ -maxdepth 1 -name ".workspace*" | wc -l) +fi + +#if ! java -cp "$( dirname $( realpath "${BASH_SOURCE[0]}" ) )"/../plugins/org.eclipse.equinox.launcher*.jar -Xms512m $memory -Djava.awt.headless=true org.eclipse.core.launcher.Main -configuration "$( dirname $( realpath "${BASH_SOURCE[0]}" ) )"/configuration -application msi.gama.headless.product -data $passWork "$@"; then + +MY_JAVA_DIR=./_java +MY_JAVA_SYSTEM_PREFS_DIR=${MY_JAVA_DIR}/.systemPrefs +MY_JAVA_USER_PREFS_DIR=${MY_JAVA_DIR}/.userPrefs +mkdir -p ${MY_JAVA_DIR} +mkdir -p ${MY_JAVA_SYSTEM_PREFS_DIR} +mkdir -p ${MY_JAVA_USER_PREFS_DIR} +chmod -R 777 ${MY_JAVA_DIR} + +MY_TEMP_DIR=. + +if ! java -cp "$( dirname $( realpath "${BASH_SOURCE[0]}" ) )"/../plugins/org.eclipse.equinox.launcher*.jar -Xms512m $memory -Djava.io.tmpdir=$MY_TEMP_DIR -Djava.util.prefs.systemRoot=${MY_JAVA_DIR} -Djava.util.prefs.userRoot=${MY_JAVA_USER_PREFS_DIR} -Djava.awt.headless=true org.eclipse.core.launcher.Main -configuration "$( dirname $( realpath "${BASH_SOURCE[0]}" ) )"/configuration -application msi.gama.headless.product -data $passWork "$@"; then + echo "Error in you command, here's the log :" + cat $passWork/.metadata/.log + exit 1 +fi +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cmd_gama_headless_legacy_run.sh Fri Aug 02 18:03:16 2024 +0000 @@ -0,0 +1,23 @@ +#!/bin/bash + +# Headless Legacy mode. +# +# Command to run an experiment plan XML file associated with a GAML file : +# ./gama-headless.sh /path/to/file.xml /path/to/generated/outputFolder +# with: +# - /path/to/file.xml: path (relative or absolute) to the XML file +# containing the full exploration plan to run by the headless. +# - /path/to/generated/outputFolder: path (relative or absolute) +# which will be generated by GAMA and hold every output files +# (variables, snapshots, and console messages). + +# With : +# - GAMA application in folder ./software +# - [input] XML file path : ./exp/file.xml +# - [input] GAML file (associated with XML file) path : ./exp/model.gaml +# - [output] the outputs folder ./exp/outputs + +HOME=$(echo $PWD) +cd software/gama-platform/headless; +/bin/bash MY_gama-headless.sh ${HOME}/exp/file.xml ${HOME}/exp/outputs +