Magellan Linux

Annotation of /branches/mage-next/src/helper/mgroupadd.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2552 - (hide annotations) (download)
Wed Jan 29 12:04:16 2014 UTC (10 years, 3 months ago) by niro
File size: 1899 byte(s)
renamed mgroup(add|del) helpers to *.in
1 niro 42 #!/bin/bash
2 niro 2268 # $Id$
3 niro 42
4 niro 1273 # include all needed files
5     [ -f /etc/mage.rc.global ] && source /etc/mage.rc.global
6     [ -f ${MAGERC} ] && source ${MAGERC}
7     [ -f ${MLIBDIR}/mage4.functions.sh ] && source ${MLIBDIR}/mage4.functions.sh
8    
9 niro 42 print_usage()
10     {
11     echo "$(basename $0 .sh) adds groups to /etc/group."
12     echo " USAGE: $(basename $0 .sh) -o OPTIONS GROUP_NAME .."
13     echo
14     echo " OPTIONS: -o \"OPTS\"all options from /usr/sbin/groupadd can be used."
15     echo
16     echo " Examples:"
17     echo " $(basename $0 .sh) -o \"-g 22\" sshd"
18     echo
19     }
20    
21 niro 1273 busybox_fix_group_opts()
22     {
23     local i
24     local FIXED_GROUP_OPTS
25    
26     for i in $*
27     do
28     case $1 in
29     -r) FIXED_GROUP_OPTS+=" -S" ;;
30     *) FIXED_GROUP_OPTS+=" $1" ;;
31     esac
32     shift
33     done
34    
35     echo "${FIXED_GROUP_OPTS}"
36     }
37    
38 niro 1498 if [[ ! -z ${MROOT} ]] && [[ ${MROOT} != / ]]
39     then
40     chroot="chroot ${MROOT} "
41     else
42     chroot=""
43     fi
44    
45 niro 42 while getopts "o:-" opt ; do
46     case "${opt}" in
47     o)
48     GROUP_OPTS="${OPTARG}"
49     ;;
50    
51     -) break
52     ;;
53    
54     *)
55     print_usage
56     exit 1
57     ;;
58     esac
59     done
60     shift $(($OPTIND - 1))
61    
62     #exit if $1 is zero
63     if [ -z "$1" ]
64     then
65     print_usage
66     exit 1
67     fi
68    
69     GROUP_TO_ADD="$1"
70    
71 niro 1273 # busybox support needed?
72     if need_busybox_support addgroup
73 niro 42 then
74 niro 1498 echo -n " Adding group '${GROUP_TO_ADD}'"
75     [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'"
76     echo " ..."
77 niro 1951 ${chroot} addgroup -S $(busybox_fix_group_opts ${GROUP_OPTS}) "${GROUP_TO_ADD}"
78 niro 1273
79     # normal systems
80 niro 42 else
81 niro 1273 # get the info
82 niro 1498 my_group="$(${chroot} getent group ${GROUP_TO_ADD})"
83 niro 1273
84     # if above entries are empty the user/group does not exist
85     if [ -z "${my_group}" ]
86     then
87 niro 1498 echo -n " Adding group '${GROUP_TO_ADD}'"
88     [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'"
89     echo " ..."
90 niro 1951 ${chroot} groupadd -r ${GROUP_OPTS} "${GROUP_TO_ADD}"
91 niro 1273 else
92 niro 1498 echo -n " Modifing group '${GROUP_TO_ADD}'"
93     [[ ! -z ${chroot} ]] && echo -n " in MROOT='${MROOT}'"
94     echo " ..."
95     ${chroot} groupmod ${GROUP_OPTS} "${GROUP_TO_ADD}"
96 niro 1273 fi
97 niro 42 fi