]> git.pld-linux.org Git - packages/rpm.git/blame_incremental - rpm-user_group.sh
- requires_eq, requires_eq_to now convert Requires to BuildRequires, making spec...
[packages/rpm.git] / rpm-user_group.sh
... / ...
CommitLineData
1#!/bin/sh
2
3[ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm
4[ -z "$RPM_SCRIPTVERBOSITY" ] && RPM_SCRIPTVERBOSITY=5
5
6if [ -x /usr/bin/banner.sh ]; then
7 BANNERCMD="/usr/bin/banner.sh "
8 BANNERPARA="-s -M user-group.error"
9else
10 BANNERCMD="cat"
11 BANNERPARA=""
12fi
13
14if [ "$1" = user -o "$1" = group ]; then
15 MODE=$1
16else
17 echo ERROR
18 exit 2
19fi
20shift
21
22bannercmd()
23{
24 if [ "$BANNERCMD" = cat ]; then
25 echo cat
26 else
27 if [ "$RPM_SCRIPTVERBOSITY" -lt 2 ]; then
28 echo "$BANNERCMD -M $1"
29 else
30 echo "$BANNERCMD -s -M $1"
31 fi
32 fi
33}
34
35testrm()
36{
37 [ "$RPM_USERDEL" != yes ] || [ ! -x /bin/rpm ] && return 1
38 [ -z "$1" ] && return 2
39 rpm -q --whatprovides "${MODE}($1)" >/dev/null 2>&1
40 # no package Provides it (strange)
41 [ $? -ne 0 ] && return 0
42 # only current package Provides it
43 [ `rpm -q --whatprovides "${MODE}($1)" | wc -l` -lt 2 ] && return 0
44 return 1
45}
46
47if [ "$1" = "testrm" ]; then
48 testrm $2
49 exit $?
50elif [ "$1" = del ]; then
51 if testrm $2; then
52 echo "Removing $MODE $2" | `bannercmd "${MODE}del-$2"`
53 /usr/sbin/${MODE}del $2 || :
54 if [ -x /usr/sbin/nscd ]; then
55 case "${MODE}" in
56 user)
57 /usr/sbin/nscd -i passwd
58 ;;
59 group)
60 /usr/sbin/nscd -i group
61 ;;
62 esac
63 fi
64 fi
65elif [ "$MODE" = "user" -a "$1" = "addtogroup" ]; then
66 user="$2"
67 group="$3"
68 groups=$(id -n -G $user)
69 if [[ " $groups " != *\ $group\ * ]]; then
70 echo "Adding user $user to group $group" | `bannercmd "${MODE}mod-$user"`
71 for grp in $groups $group; do
72 new="$new${new:+,}$grp"
73 done
74 usermod -G "$new" $user
75 fi
76else
77 echo ERROR
78 exit 2
79fi
This page took 0.032435 seconds and 4 git commands to generate.