home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / bin / groups < prev    next >
Text File  |  2006-11-29  |  2KB  |  84 lines

  1. #!/bin/sh
  2. # groups -- print the groups a user is in
  3. # Copyright (C) 1991, 1997, 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
  4.  
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2, or (at your option)
  8. # any later version.
  9.  
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14.  
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program; if not, write to the Free Software Foundation,
  17. # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18.  
  19. # Written by David MacKenzie <djm@gnu.ai.mit.edu>.
  20.  
  21. # Make sure we get GNU id, if possible; also allow
  22. # it to be somewhere else in PATH if not installed yet.
  23. PATH=/usr/bin:$PATH
  24.  
  25. usage="Usage: $0 [OPTION]... [USERNAME]...
  26.  
  27.   --help      display this help and exit
  28.   --version   output version information and exit
  29.  
  30. Same as id -Gn.  If no USERNAME, use current process.
  31.  
  32. Report bugs to <bug-coreutils@gnu.org>."
  33.  
  34. version='groups (GNU coreutils) 6.4
  35. Copyright (C) 2006 Free Software Foundation, Inc.
  36. This is free software.  You may redistribute copies of it under the terms of
  37. the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
  38. There is NO WARRANTY, to the extent permitted by law.
  39.  
  40. Written by David MacKenzie.'
  41.  
  42.  
  43. for arg
  44. do
  45.   case $arg in
  46.     --help | --hel | --he | --h)
  47.       exec echo "$usage" ;;
  48.     --version | --versio | --versi | --vers | --ver | --ve | --v)
  49.       exec echo "$version" ;;
  50.     --)
  51.       shift
  52.       break ;;
  53.     -*)
  54.       echo "$0: invalid option: $arg" >&2
  55.       exit 1 ;;
  56.   esac
  57. done
  58.  
  59. # With fewer than two arguments, simply exec "id".
  60. case $# in
  61.   0|1) exec id -Gn -- "$@" ;;
  62. esac
  63.  
  64. # With more, we need a loop, and be sure to exit nonzero upon failure.
  65. status=0
  66. write_error=0
  67.  
  68. for name
  69. do
  70.   if groups=`id -Gn -- "$name"`; then
  71.     echo "$name : $groups" || {
  72.       status=$?
  73.       if test $write_error = 0; then
  74.     echo "$0: write error" >&2
  75.     write_error=1
  76.       fi
  77.     }
  78.   else
  79.     status=$?
  80.   fi
  81. done
  82.  
  83. exit $status
  84.