Defining a new suite
Text Method
Create a file called test.def,using your favourite text editor, with the following contents:
suite test
edit ECF_HOME "$HOME/course" # replace '$HOME' with the path to your home directory
task t1
endsuite
This line is a comment line. Any characters between the # and the end of line are ignored
The second line is empty
This line defines a new suite by the name of test.
Here we define a ecFlow variable called ECF_HOME. This variable defines the directory where all the unix files that will be used by the suite test will reside. For the rest of the course all file names will be given relative to this directory.
Warning
Be sure to replace $HOME with the path to your home directory
This defines a task named t1
Python Method
Enter the following python code into a file, i.e test.py :
import os
from ecflow import Defs, Suite, Task, Edit
print("Creating suite definition")
home = os.path.join(os.getenv("HOME"), "course")
defs = Defs(Suite("test", Edit(ECF_HOME=home), Task("t1")))
print(defs)
print("Checking job creation: .ecf -> .job0")
print(defs.check_job_creation())
print("Saving definition to file 'test.def'")
defs.save_as_defs("test.def")
# To restore the definition from file 'test.def' we can use:
# restored_defs = ecflow.Defs("test.def")
Then run as a python script:
python test.py
Alternatively add the following as the first line in test.py:
#!/usr/bin/env python3
...
chmod +x test.py
./test.py # this uses shebang, see below, searches for specified python variant in $PATH
You should see the text “Creating suite definition” and then your definition as your output.
What to do:
Initially try both plain text and python examples. Later examples are only in python.
Type in the suite definition file.
Choose python invocation. i.e.
python3 test.py|./test.py.