124f91833SMichael Walsh#!/bin/bash
224f91833SMichael Walsh#\
324f91833SMichael Walshexec wish "$0" -- ${1+"$@"}
424f91833SMichael Walsh
524f91833SMichael Walshsource [exec bash -c "which source.tcl"]
624f91833SMichael Walshmy_source [list print.tcl opt.tcl]
724f91833SMichael Walsh
824f91833SMichael Walshlongoptions test_mode:=0 quiet:=0
924f91833SMichael Walshpos_parms
1024f91833SMichael Walsh
1124f91833SMichael Walsh
1224f91833SMichael Walsh# Create help dictionary for call to gen_print_help.
1324f91833SMichael Walshset help_dict [dict create\
1424f91833SMichael Walsh  ${program_name} [list "${program_name} will..."]\
1524f91833SMichael Walsh]
1624f91833SMichael Walsh
1724f91833SMichael Walsh
1824f91833SMichael Walshproc help {} {
1924f91833SMichael Walsh
2024f91833SMichael Walsh  gen_print_help
2124f91833SMichael Walsh
2224f91833SMichael Walsh}
2324f91833SMichael Walsh
2424f91833SMichael Walsh
2524f91833SMichael Walshproc exit_proc { {ret_code 0} } {
2624f91833SMichael Walsh
27*410b1787SMichael Walsh  # Execute whenever the program ends normally or with the signals that we catch (i.e. TERM, INT).
2824f91833SMichael Walsh
2924f91833SMichael Walsh  dprint_executing
3024f91833SMichael Walsh  dprint_var ret_code
3124f91833SMichael Walsh
3224f91833SMichael Walsh  # Your code here.
3324f91833SMichael Walsh
3424f91833SMichael Walsh  qprint_pgm_footer
3524f91833SMichael Walsh
3624f91833SMichael Walsh  exit $ret_code
3724f91833SMichael Walsh
3824f91833SMichael Walsh}
3924f91833SMichael Walsh
4024f91833SMichael Walsh
4124f91833SMichael Walshproc validate_parms {} {
4224f91833SMichael Walsh
4324f91833SMichael Walsh  trap { exit_proc } [list SIGTERM SIGINT]
4424f91833SMichael Walsh
4524f91833SMichael Walsh  # Your code here.
4624f91833SMichael Walsh
4724f91833SMichael Walsh}
4824f91833SMichael Walsh
4924f91833SMichael Walsh
5024f91833SMichael Walsh# Main
5124f91833SMichael Walsh
5224f91833SMichael Walsh  gen_get_options $argv
5324f91833SMichael Walsh
5424f91833SMichael Walsh  validate_parms
5524f91833SMichael Walsh
5624f91833SMichael Walsh  qprint_pgm_header
5724f91833SMichael Walsh
5824f91833SMichael Walsh  exit_proc
59