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.
calculate-utils-3-client/data/client

90 lines
2.7 KiB

#!/sbin/openrc-run
# Copyright 2008-2016 Mir Calculate. http://www.calculate-linux.org
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
depend() {
use localmount
after bootmisc consolefont modules netmount
after readahead-list ypbind autofs openvpn gpm lircmd
after cupsd fbcondecor sshd cron wicd
before display-manager
after acpid consolekit hald xfs
keyword -timeout -docker -lxc -systemd-nspawn -vserver
}
variable_value()
{
/usr/libexec/calculate/cl-variable --value $*
}
start() {
# Mount remote Samba filesystems.
# Identifing domain server by cl-client variables
OUT=$(variable_value client.cl_remote_host client.cl_remote_host_live client.cl_remote_pw main.cl_template_location)
local SERVER="$(echo "$OUT" | sed -n '1p')"
local SERVERLIVE="$(echo "$OUT" | sed -n '2p')"
local SERVERPW="$(echo "$OUT" | sed -n '3p')"
local TEMPLATES="$(echo "$OUT" | sed -n '4p')"
[[ -z $SERVERLIVE ]] && SERVERLIVE=$SERVER
if [[ -n $SERVERLIVE ]]
then
ebegin "Mounting domain resources"
local NET_CONF=`variable_value install.os_install_net_conf`
if [[ $NET_CONF = "networkmanager" ]] && type qdbus &>/dev/null
then
for COUNT in $( seq 0 32 )
do
# https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html
NET_STATE=`qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.state`
if [[ $NET_STATE = 40 ]]
then
ping -w4 -i0.5 -c3 $SERVERLIVE &>/dev/null && break || sleep 0.5
else
[[ $NET_STATE = 20 && $COUNT -lt 16 ]] && sleep 0.5 || break
fi
done
else
for COUNT in $( seq 0 24 )
do
ping -w4 -i0.5 -c3 $SERVERLIVE &>/dev/null && break || sleep 0.5
done
fi
if [[ -z $SERVER ]]
then
LANG=C /usr/bin/cl-client -T ${TEMPLATES/,remote/} $SERVERLIVE && res=$? &&
/usr/bin/cl-setup-system -T remote &>/dev/null
else
LANG=C /usr/bin/cl-client --mount
fi
res=$?
eend $res "Some samba remote resources to mount"
else
true
fi
}
stop(){
ebegin "Unmount domain resources"
[[ $( mount | grep ' /var/calculate/remote ' ) ]] &&
umount /var/calculate/remote
[[ $( mount | grep '/var/calculate/client-home on /home ' ) ]] &&
umount /home
eend 0
}
# vim:ts=4