OpenWrt – Blame information for rev 4
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
4 | office | 1 | #!/bin/sh |
2 | # |
||
3 | # Copyright (C) 2018 OpenWrt.org |
||
4 | # Copyright (C) 2018 rosysong@rosinson.com |
||
5 | # |
||
6 | |||
7 | . /lib/functions.sh |
||
8 | |||
9 | FLAG_DEV_TYPE= |
||
10 | FLAG_DEV_MOPT= |
||
11 | FLAG_HAS_SECT= |
||
12 | |||
13 | samba_dev_filter() { # <devname> <[path,/dev/]> |
||
14 | case $1 in |
||
15 | ${2}mtdblock*|\ |
||
16 | ${2}ubi*) |
||
17 | FLAG_DEV_TYPE="mtd" |
||
18 | ;; |
||
19 | ${2}loop*|\ |
||
20 | ${2}mmcblk*|\ |
||
21 | ${2}sd*|\ |
||
22 | ${2}hd*|\ |
||
23 | ${2}md*|\ |
||
24 | ${2}nvme*|\ |
||
25 | ${2}vd*|\ |
||
26 | ${2}xvd*) |
||
27 | FLAG_DEV_TYPE="not-mtd" |
||
28 | ;; |
||
29 | *) |
||
30 | [ -b ${2}${1} ] && FLAG_DEV_TYPE="not-mtd" |
||
31 | [ -b /dev/mapper/$1 ] && FLAG_DEV_TYPE="not-mtd" |
||
32 | ;; |
||
33 | esac |
||
34 | } |
||
35 | |||
36 | samba_cfg_lookup() { # <section> <name> |
||
37 | config_get name $1 name |
||
38 | [ "$name" = "$2" ] || return |
||
39 | FLAG_HAS_SECT=y |
||
40 | } |
||
41 | |||
42 | samba_cfg_delete() { # <section> <name> |
||
43 | config_get name $1 name |
||
44 | [ "$name" = "$2" ] || return |
||
45 | uci -q delete samba.$1 |
||
46 | } |
||
47 | |||
48 | samba_find_mount_point() { # <devname> |
||
49 | # search mount point in /proc/mounts |
||
50 | while read l; do |
||
51 | local d=$(echo $l | awk '/^\/dev/ {print $1}') |
||
52 | [ "$d" = "/dev/$1" ] || continue |
||
53 | |||
54 | FLAG_DEV_MOPT=$(echo $l | awk '/^\/dev/ {print $2}') |
||
55 | break |
||
56 | done < /proc/mounts |
||
57 | } |
||
58 | |||
59 | _samba_add_section() { # <devname> <mount point> |
||
60 | uci -q batch <<-EOF |
||
61 | add samba sambashare |
||
62 | set samba.@sambashare[-1].browseable='yes' |
||
63 | set samba.@sambashare[-1].name='$1' |
||
64 | set samba.@sambashare[-1].path='$2' |
||
65 | set samba.@sambashare[-1].users='root' |
||
66 | set samba.@sambashare[-1].read_only='no' |
||
67 | set samba.@sambashare[-1].guest_ok='yes' |
||
68 | set samba.@sambashare[-1].create_mask='0755' |
||
69 | set samba.@sambashare[-1].dir_mask='0755' |
||
70 | EOF |
||
71 | } |
||
72 | |||
73 | samba_add_section() { # <devname> [<mount point>] |
||
74 | FLAG_HAS_SECT= |
||
75 | FLAG_DEV_MOPT= |
||
76 | |||
77 | config_foreach samba_cfg_lookup sambashare $1 |
||
78 | [ -z "$FLAG_HAS_SECT" ] || return |
||
79 | |||
80 | samba_find_mount_point $1 |
||
81 | [ -n "$FLAG_DEV_MOPT" ] || return |
||
82 | |||
83 | [ -n "$2" -a "$2" = "$FLAG_DEV_MOPT" ] || \ |
||
84 | _samba_add_section $1 $FLAG_DEV_MOPT |
||
85 | } |
||
86 | |||
87 | samba_delete_section() { # <devname> |
||
88 | config_foreach samba_cfg_delete sambashare $1 |
||
89 | } |