1*63d4e48fSSadaf Ebrahimi#!/bin/sh 2*63d4e48fSSadaf Ebrahimi# 3*63d4e48fSSadaf Ebrahimi# This script does the very simple job of echoing some text. If a '-d' (or 4*63d4e48fSSadaf Ebrahimi# '--debug') flag is given, additinal "debug" output is enabled. 5*63d4e48fSSadaf Ebrahimi# 6*63d4e48fSSadaf Ebrahimi# This script demonstrates the use of a boolean flag to enable custom 7*63d4e48fSSadaf Ebrahimi# functionality in a script. 8*63d4e48fSSadaf Ebrahimi# 9*63d4e48fSSadaf Ebrahimi# Try running these: 10*63d4e48fSSadaf Ebrahimi# $ ./debug_output.sh speak 11*63d4e48fSSadaf Ebrahimi# $ ./debug_output.sh sing 12*63d4e48fSSadaf Ebrahimi# $ ./debug_output.sh --debug sing 13*63d4e48fSSadaf Ebrahimi 14*63d4e48fSSadaf Ebrahimi# Source shflags. 15*63d4e48fSSadaf Ebrahimi. ../shflags 16*63d4e48fSSadaf Ebrahimi 17*63d4e48fSSadaf Ebrahimi# Define flags. 18*63d4e48fSSadaf EbrahimiDEFINE_boolean 'debug' false 'enable debug mode' 'd' 19*63d4e48fSSadaf EbrahimiFLAGS_HELP=`cat <<EOF 20*63d4e48fSSadaf Ebrahimicommands: 21*63d4e48fSSadaf Ebrahimi speak: say something 22*63d4e48fSSadaf Ebrahimi sing: sing something 23*63d4e48fSSadaf EbrahimiEOF` 24*63d4e48fSSadaf Ebrahimi 25*63d4e48fSSadaf Ebrahimidebug() { 26*63d4e48fSSadaf Ebrahimi [ ${FLAGS_debug} -eq ${FLAGS_TRUE} ] || return 27*63d4e48fSSadaf Ebrahimi echo "DEBUG: $@" >&2 28*63d4e48fSSadaf Ebrahimi} 29*63d4e48fSSadaf Ebrahimi 30*63d4e48fSSadaf Ebrahimidie() { [ $# -gt 0 ] && echo "error: $@" >&2 31*63d4e48fSSadaf Ebrahimi flags_help 32*63d4e48fSSadaf Ebrahimi exit 1 33*63d4e48fSSadaf Ebrahimi} 34*63d4e48fSSadaf Ebrahimi 35*63d4e48fSSadaf Ebrahimi# Parse the command-line. 36*63d4e48fSSadaf EbrahimiFLAGS "$@" || exit 1 37*63d4e48fSSadaf Ebrahimieval set -- "${FLAGS_ARGV}" 38*63d4e48fSSadaf Ebrahimi 39*63d4e48fSSadaf Ebrahimicommand=$1 40*63d4e48fSSadaf Ebrahimicase ${command} in 41*63d4e48fSSadaf Ebrahimi '') die ;; 42*63d4e48fSSadaf Ebrahimi 43*63d4e48fSSadaf Ebrahimi speak) 44*63d4e48fSSadaf Ebrahimi debug "I'm getting ready to say something..." 45*63d4e48fSSadaf Ebrahimi echo 'The answer to the question "What is the meaning of life?" is "42".' 46*63d4e48fSSadaf Ebrahimi ;; 47*63d4e48fSSadaf Ebrahimi 48*63d4e48fSSadaf Ebrahimi sing) 49*63d4e48fSSadaf Ebrahimi debug "I'm getting ready to sing something..." 50*63d4e48fSSadaf Ebrahimi echo 'I love to sing! La diddy da dum!' 51*63d4e48fSSadaf Ebrahimi ;; 52*63d4e48fSSadaf Ebrahimi 53*63d4e48fSSadaf Ebrahimi *) die "unrecognized command (${command})" ;; 54*63d4e48fSSadaf Ebrahimiesac 55