OpenSDE Framework (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB

  1. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  2. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  3. #
  4. # Filename: lib/sde-wrapper.in
  5. # Copyright (C) 2006 - 2008 The OpenSDE Project
  6. #
  7. # More information can be found in the files COPYING and README.
  8. #
  9. # This program is free software; you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation; version 2 of the License. A copy of the
  12. # GNU General Public License can be found in the file COPYING.
  13. # --- SDE-COPYRIGHT-NOTE-END ---
  14. # list all the valid command wrappers
  15. #
  16. sde_wrapper_command_list() {
  17. ls -1d "$SDEROOT/bin/sde-"* | grep -v 'bin/sde-.*-.*'
  18. }
  19. # returns the name of a command file
  20. sde_wrapper_command_name() {
  21. echo "$1" | sed -e 's,.*/sde-,,'
  22. }
  23. # returns the description of a command file
  24. sde_wrapper_command_desc() {
  25. sed -n -e 's,^#Description: \(.*\)$,\1,p' "$1" | head -n 1
  26. }
  27. # returns an space delimited list of aliases of this command file
  28. sde_wrapper_command_aliases() {
  29. sed -n -e 's,^#Alias: \([^ ]*\)$,\1,p' "$command" | tr '\n' ' ' |
  30. sed -e 's/^ *//' -e 's/ *$//'
  31. }
  32. sde_wrapper_command() {
  33. local cmdbin=
  34. if [ "$1" != "${1%-*}" ]; then
  35. # trying to cheat, no dashes alowed
  36. return
  37. elif [ -x "$SDEROOT/bin/sde-$1" ]; then
  38. # command given explicitly
  39. echo "$1"
  40. else
  41. # given token may be an alias of a valid command
  42. cmdbin=$( grep -l "^#Alias: $1$" `sde_wrapper_command_list` | head -n 1 )
  43. echo "$cmdbin" | sed -e 's,.*/sde-,,'
  44. fi
  45. }