xref: /aosp_15_r20/external/shflags/examples/debug_output.sh (revision 63d4e48fb639f6414be0db9d718e3be2667e4fed)
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