diff --git a/bin/gen_setup.sh b/bin/gen_setup.sh
new file mode 100755
index 0000000..e37dfa7
--- /dev/null
+++ b/bin/gen_setup.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+# Universal bash program setup functions.
+
+# Example usage:
+
+# Source files to get required functions.
+# source_files="gen_setup.sh"
+# source_file_paths=$(type -p ${source_files})
+# for file_path in ${source_file_paths} ; do source ${file_path} ; done
+
+# Turn on extended globbing.
+shopt -s extglob
+
+
+function get_pgm_path_info {
+  local program_path_var="${1:-program_path}" ; shift
+  local program_name_var="${1:-program_name}" ; shift
+  local program_dir_path_var="${1:-program_dir_path}" ; shift
+  local follow_links="${1:-0}" ; shift
+
+  # Determine the program path, name and dir path and assign them to the
+  # variables indicated by the caller.
+
+  # Description of argument(s):
+  # program_path_var                The name of the variable to receive the
+  #                                 program path.
+  # program_name_var                The name of the variable to receive the
+  #                                 program name.
+  # program_dir_path_var            The name of the variable to receive the
+  #                                 program dir path.
+  # follow_links                    If the program running is actually a link
+  #                                 to another file, use that file when
+  #                                 calculating the above values.
+
+  local _spn_loc_program_path_="${0}"
+
+  # The program name is the program path minus all characters up to and
+  # including the first slash.
+  local _spn_loc_program_name_=${_spn_loc_program_path_##*/}
+  # The program dir path is the program path minus everythin from the last
+  # slash to the end of the string.
+  local _spn_loc_program_dir_path_=${_spn_loc_program_path_%${_spn_loc_program_name_}}
+
+  # If program dir path does not start with a slash then it is relative.
+  # Convert it to absolute.
+  if [ "${_spn_loc_program_dir_path_:0:1}" != "/" ] ; then
+    _spn_loc_program_dir_path_="$(readlink -f ${_spn_loc_program_dir_path_})/"
+    # Re-assemble the parts into program path variable.
+    _spn_loc_program_path_="${_spn_loc_program_dir_path_}${_spn_loc_program_name_}"
+  fi
+
+  if (( follow_links )) ; then
+    _spn_loc_program_path_=$(readlink -f ${_spn_loc_program_path_})
+    # Re-calculate program_name in case it is different now.
+    _spn_loc_program_name_=${_spn_loc_program_path_##*/}
+  fi
+
+  # Set caller's variables.
+  cmd_buf="${program_path_var}=\"\${_spn_loc_program_path_}\" ; ${program_name_var}=\"\${_spn_loc_program_name_}\" ; ${program_dir_path_var}=\"\${_spn_loc_program_dir_path_}\""
+  eval "${cmd_buf}"
+
+}
