You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.6 KiB
73 lines
1.6 KiB
#!/bin/sh
|
|
#
|
|
# /etc/rc.d/rc.psd
|
|
#
|
|
# Start/stop profile-sync-daemon.
|
|
#
|
|
# This script enables and disables profile-sync-daemon for selected users.
|
|
# You can either define users in the $USERS array,
|
|
# or have this script scan for them and save them in $USERS_CACHE.
|
|
|
|
USERS=""
|
|
USERS_CACHE="/run/psd-users.cache"
|
|
|
|
scan_users() {
|
|
rm -f "$USERS_CACHE"
|
|
|
|
for user in $(getent passwd | cut -d: -f1); do
|
|
group="$(getent passwd $user | cut -d: -f4)"
|
|
home="$(getent passwd $user | cut -d: -f6)"
|
|
shell="$(getent passwd $user | cut -d: -f7)"
|
|
if [ "$group" != "0" -a "$home" -a "$home" != "/" -a "$(grep $shell /etc/shells)" ]; then
|
|
config="$(su - $user -c 'echo $XDG_CONFIG_HOME')"
|
|
[ ! "$config" ] && config="$home/.config"
|
|
if [ -f "$config/psd/psd.conf" ]; then
|
|
echo "$user" >> "$USERS_CACHE"
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
get_users() {
|
|
# If $USERS is empty, try to create it based on what users have an existing $XDG_CONFIG_HOME/psd/psd.conf
|
|
if [ ! "$USERS" ]; then
|
|
if [ ! -f "$USERS_CACHE" ]; then
|
|
scan_users
|
|
fi
|
|
cat "$USERS_CACHE"
|
|
else
|
|
echo "$USERS"
|
|
fi
|
|
}
|
|
|
|
start_psd() {
|
|
if [ -x /usr/bin/psd ]; then
|
|
echo "Starting/Resyncing Profile-sync-daemon..."
|
|
for user in $(get_users); do
|
|
su - $user -c 'psd resync' > /dev/null
|
|
done &
|
|
fi
|
|
}
|
|
|
|
stop_psd() {
|
|
if [ -x /usr/bin/psd ]; then
|
|
echo "Stoppping Profile-sync-daemon..."
|
|
for user in $(get_users); do
|
|
su - $user -c 'psd unsync' > /dev/null
|
|
done
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
'start')
|
|
start_psd
|
|
;;
|
|
'stop')
|
|
stop_psd
|
|
;;
|
|
'scan_users')
|
|
scan_users
|
|
;;
|
|
*)
|
|
echo "Usage: $0 start|stop|scan_users"
|
|
esac
|
|
|