xref: /openbmc/openbmc-test-automation/templates/bash_simple_template (revision 90dfee368240b5149f0ce42a8ebaeb5aa596fedb)
17d68d00bSMichael Walsh#!/bin/bash
27d68d00bSMichael Walsh
37d68d00bSMichael Walsh# Template to start a simple bash program.  This is designed only for the
44f5eb807SGeorge Keishing# simplest of programs where all program parameters are positional, there is no
57d68d00bSMichael Walsh# help text, etc.
67d68d00bSMichael Walsh
77d68d00bSMichael Walsh# Description of argument(s):
87d68d00bSMichael Walsh# parm1                             Bla, bla, bla (e.g. "example data").
97d68d00bSMichael Walsh
107d68d00bSMichael Walsh
11*90dfee36SPatrick Williamsfunction get_parms() {
127d68d00bSMichael Walsh
137d68d00bSMichael Walsh    # Get program parms.
147d68d00bSMichael Walsh
157d68d00bSMichael Walsh    parm1="${1}" ; shift
167d68d00bSMichael Walsh
177d68d00bSMichael Walsh    return 0
187d68d00bSMichael Walsh
197d68d00bSMichael Walsh}
207d68d00bSMichael Walsh
217d68d00bSMichael Walsh
22*90dfee36SPatrick Williamsfunction exit_function() {
237beadb2aSMichael Walsh
247beadb2aSMichael Walsh    return
257beadb2aSMichael Walsh
267beadb2aSMichael Walsh}
277beadb2aSMichael Walsh
28*90dfee36SPatrick Williamsfunction validate_parms() {
297d68d00bSMichael Walsh
307d68d00bSMichael Walsh    # Validate program parameters.
317d68d00bSMichael Walsh
327d68d00bSMichael Walsh    # Your validation code here.
337d68d00bSMichael Walsh
347d68d00bSMichael Walsh    if [ -z "${parm1}" ] ; then
357d68d00bSMichael Walsh        echo "**ERROR** You must provide..." >&2
367d68d00bSMichael Walsh        return 1
377d68d00bSMichael Walsh    fi
387d68d00bSMichael Walsh
397beadb2aSMichael Walsh    trap "exit_function $signal \$?" EXIT
407beadb2aSMichael Walsh
417d68d00bSMichael Walsh    return 0
427d68d00bSMichael Walsh
437d68d00bSMichael Walsh}
447d68d00bSMichael Walsh
457d68d00bSMichael Walsh
46*90dfee36SPatrick Williamsfunction mainf() {
477d68d00bSMichael Walsh
487d68d00bSMichael Walsh    get_parms "$@" || return 1
497d68d00bSMichael Walsh
507d68d00bSMichael Walsh    validate_parms || return 1
517d68d00bSMichael Walsh
527d68d00bSMichael Walsh    # Your code here...
537d68d00bSMichael Walsh
547d68d00bSMichael Walsh    return 0
557d68d00bSMichael Walsh
567d68d00bSMichael Walsh}
577d68d00bSMichael Walsh
587d68d00bSMichael Walsh
597d68d00bSMichael Walsh# Main
607d68d00bSMichael Walsh
617d68d00bSMichael Walshmainf "${@}"
627d68d00bSMichael Walshrc="${?}"
637d68d00bSMichael Walshexit "${rc}"
64