#!/bin/sh # # D-Team Technology Co.,Ltd. ShenZhen # 作者:Vic # # # 警告:对着屏幕的哥们,我们允许你使用此脚本,但不允许你抹去作者的信息,请保留这段话。 # . /lib/functions.sh . /lib/functions/service.sh global=0 config_file="/etc/config/samba" wait_for_init() { for i in `seq 30` do [ -e /tmp/procd.done ] || { sleep 1; continue; } return done } smb_handle() { config_get path $1 path if [ "$path" = "$2" ] ;then global=1 fi } chk_en() { config_get_bool autoshare $1 autoshare 1 [ $autoshare -eq 0 ] && exit } config_load samba config_foreach chk_en samba device=`basename $DEVPATH` case "$ACTION" in add) case "$device" in sd*) ;; md*) ;; hd*);; mmcblk*);; *) return;; esac path="/dev/$device" wait_for_init cat /proc/mounts | while read j do str=${j%% *} if [ "$str" == $path ];then strr=${j#* } target=${strr%% *} global=0 config_foreach smb_handle sambashare $target name=${target#*/mnt/} if [ $global -eq 0 ] ;then echo -e "\n\nconfig sambashare" >> $config_file echo -e "\toption auto '1'" >> $config_file echo -e "\toption name '$name'" >> $config_file echo -e "\toption path '$target'" >> $config_file echo -e "\toption read_only 'no'" >> $config_file echo -e "\toption guest_ok 'yes'" >> $config_file echo -e "\toption create_mask '0666'" >> $config_file echo -e "\toption dir_mask '0777'" >> $config_file echo -e "\toption device '$device'" >> $config_file /etc/init.d/samba reload return fi fi done ;; remove) i=0 while true do dev=`uci get samba.@sambashare[$i].device` [ $? -ne 0 ] && break [ "$dev" = "$device" ] && { auto=`uci get samba.@sambashare[$i].auto` [ $auto = "1" ] && { mount_dir=`uci get samba.@sambashare[$i].name` rm -rf /mnt/$device /mnt/$mount_dir uci delete samba.@sambashare[$i] uci commit /etc/init.d/samba reload return } } let i+=1 done ;; esac