#!/bin/bash
declare -xA sambaflags=( \
    [hidden]=$'    browseable = no\n' \
    [admin]=$'    valid users = @BUILTIN\\\\administrators\n' \
)
declare -x sambacommonvfs=$(</etc/omix/samba.common.vfs)

sambasharedef(){
        local params vfs=$sambacommonvfs
        for flag in $flags; do
            [[ $flag == recycle ]] && vfs+=' recycle' && continue
            params+=${sambaflags[$flag]}
        done
        if [[ $name == homes ]]; then
cat <<EOF
[homes]
    comment = $comment
    path = /var/samba/homes/%S
    root preexec = /usr/share/omix/mkhome %S
    browseable = no

    vfs objects = $vfs

EOF
        else
cat <<EOF
[$name]
    comment = $comment
    path = /var/samba/$name
$params
    vfs objects = $vfs
EOF
        fi
}

sambashares(){
  local shares=/etc/samba/shares/*.conf shareconf
    while IFS=$'\t' read name comment flags; do
        sambasharedef > $ldir/shares/$name.conf
        shareconf=/etc/samba/shares/$name.conf
        [[ -e $shareconf ]] || ln -s $ldir/shares/$name.conf $shareconf
    done < <(sed -e '/^#/d; /^[[:space:]]*$/d' /etc/omix/samba.shares)

  sed -ne '/homes/d;/path/s/[[:space:]]*path[[:space:]]*=[[:space:]]*//p' \
    $shares | xargs mkdir -p
  printf '%s\n' $shares | sed 's/^/include = /'

}

#export -f sambashares #sambasharedef
