Annotation of /trunk/mage/usr/lib/mage/mgroupadd
Parent Directory | Revision Log
Revision 2268 -
(hide annotations)
(download)
Fri Oct 25 06:48:57 2013 UTC (10 years, 11 months ago) by niro
File size: 1899 byte(s)
Fri Oct 25 06:48:57 2013 UTC (10 years, 11 months ago) by niro
File size: 1899 byte(s)
-fixed header
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 |