#!/usr/bin/bash

. /etc/init.d/functions
. /etc/tos/scripts/scripts

ter_samba_cfg=/usr/tos/bin/ter_samba_cfg
service="samba"
execute="smbd"
svrscfg="/etc/samba/smb-extend.conf"
smbp="/etc/samba/smbp"

service_prepare() {
  $ter_samba_cfg >/dev/null 2>&1
  cp -a /etc/zlog/zlog_samba.conf /tmp/TOS_CONFIG/zlog/
  chmod 777 /var/log/zlog/.

  local guestok=$(getent passwd guest)
  local enableGuest=$(isexpired guest)
  if [ $enableGuest -ne 3 ]; then
    iniparse -a -f $svrscfg -s Global -k "map to guest" -v "bad user"
    iniparse -a -f $svrscfg -s Global -k "guest ok" -v "yes"
  else
    iniparse -d -f $svrscfg -s Global -k "map to guest"
    iniparse -d -f $svrscfg -s Global -k "guest ok"
  fi

  replacestr $svrscfg "server string" "server string = $(hostname)"
  replacestr $svrscfg "netbios name" "netbios name = $(hostname)"
  local cluster=$(sed -n '/clustering/p' $svrscfg)
  [ "${cluster:0:1}" != "#" ] && sed -i '/clustering/s/^/#/' $svrscfg
  /sbin/smbdconf
}

wsdd_config() {
  status=$(systemctl is-active wsdd.service)
  [ "$status" = "active" ] && systemctl restart wsdd.service
}

nmbd_config() {
  status=$(systemctl is-active nmbd.service)
  [ "$status" = "active" ] && systemctl restart nmbd.service
}

[ ! -d /run/samba ] && mkdir -p /run/samba
[ ! -d /var/log/samba ] && mkdir -p /var/log/samba
[ ! -d /var/cache/samba/ ] && mkdir -p /var/cache/samba/
[ ! -d /var/lib/samba/private/ ] && mkdir -p /var/lib/samba/private/

service_prepare
wsdd_config
nmbd_config
exit 0
