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.
90 lines
2.7 KiB
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
|