Magellan Linux

Contents of /branches/mage-next/src/helper/mgroupadd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2534 - (show annotations) (download)
Wed Jan 29 10:54:39 2014 UTC (10 years, 2 months ago) by niro
File size: 1899 byte(s)
-move usr/lib/mage/mgroupadd > src/helper/mgroupadd
1 #!/bin/bash
2 # $Id$
3
4 # 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 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 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 if [[ ! -z ${MROOT} ]] && [[ ${MROOT} != / ]]
39 then
40 chroot="chroot ${MROOT} "
41 else
42 chroot=""
43 fi
44
45 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 # busybox support needed?
72 if need_busybox_support addgroup
73 then
74 echo -n " Adding group '${GROUP_TO_ADD}'"
75 [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'"
76 echo " ..."
77 ${chroot} addgroup -S $(busybox_fix_group_opts ${GROUP_OPTS}) "${GROUP_TO_ADD}"
78
79 # normal systems
80 else
81 # get the info
82 my_group="$(${chroot} getent group ${GROUP_TO_ADD})"
83
84 # if above entries are empty the user/group does not exist
85 if [ -z "${my_group}" ]
86 then
87 echo -n " Adding group '${GROUP_TO_ADD}'"
88 [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'"
89 echo " ..."
90 ${chroot} groupadd -r ${GROUP_OPTS} "${GROUP_TO_ADD}"
91 else
92 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 fi
97 fi