Had the opportunity to explore an exciting new feature in Mitto Command Line jobs: Multi-line commands.
Previously in Mitto, CMD jobs only allowed one line of code. So you either had to string multiple commands together with &&
or you had to write a bash script and run that.
For example: In a previous version of mitto we might have had a CMD job that ran a bash script that checked for the existence of a CSV file with today’s date, then did something with the file.
The old command for the CMD job was bash /var/mitto/data/bash-script.sh > log-output.txt 2>&1
This ran a script in the Mitto files directory, and output to a log file.
Starting in Mitto 2.9, since we now support multi-line commands, this can all be done without the use of a script. The new job config (hjson!) would look like this:
{
shell: true
cmd:
'''
exec 1>/var/mitto/data/log-output.txt
filename="filename_`date --date=today +%Y_%m_%d`.csv"
cd /var/mitto/data
filename=`ls $filename`
if [ -z "$filename" ]
then
echo "file does not exist"
exit 1
fi
echo "file exists"
# do something with file
'''
exec: false
timeout: null
cmd_env: {
}
}