mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
package:add nfs mount luci (#4171)
This commit is contained in:
parent
08637d8262
commit
5e9e8d8536
17
package/lean/luci-app-nfs/Makefile
Normal file
17
package/lean/luci-app-nfs/Makefile
Normal file
@ -0,0 +1,17 @@
|
||||
# Copyright (C) 2016 Openwrt.org
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI support for nfs
|
||||
LUCI_DEPENDS:=+nfs-utils +nfs-kernel-server +nfs-kernel-server-utils +mount-utils
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
8
package/lean/luci-app-nfs/luasrc/controller/nfs.lua
Normal file
8
package/lean/luci-app-nfs/luasrc/controller/nfs.lua
Normal file
@ -0,0 +1,8 @@
|
||||
module("luci.controller.nfs", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/nfs") then
|
||||
return
|
||||
end
|
||||
entry({"admin", "nas", "nfs"}, cbi("nfs"), _("NFS Manage"), 5).dependent = true
|
||||
end
|
70
package/lean/luci-app-nfs/luasrc/model/cbi/nfs.lua
Normal file
70
package/lean/luci-app-nfs/luasrc/model/cbi/nfs.lua
Normal file
@ -0,0 +1,70 @@
|
||||
local fs = require "nixio.fs"
|
||||
|
||||
m = Map("nfs", translate("NFS Manage"))
|
||||
|
||||
-- NFS Share --
|
||||
s = m:section(TypedSection, "share", translate("Shared Directories"))
|
||||
s.anonymous = true
|
||||
s.addremove = true
|
||||
s.template = "cbi/tblsection"
|
||||
|
||||
en = s:option(Flag, "enabled", translate("Enable"))
|
||||
en.rmempty = false
|
||||
en.default = "1"
|
||||
|
||||
ph1 = s:option(Value, "path", translate("Path"))
|
||||
ph1.placeholder = "/mnt"
|
||||
ph1.rmempty = false
|
||||
ph1.optional = false
|
||||
|
||||
ct = s:option(Value, "clients", translate("Clients"))
|
||||
ct.placeholder = "192.168.1.0/24"
|
||||
ct.rmempty = false
|
||||
ct.optional = false
|
||||
|
||||
op = s:option(Value, "options", translate("options"))
|
||||
op.placeholder = "rw,sync,root_squash,all_squash,insecure,no_subtree_check"
|
||||
op.rmempty = false
|
||||
op.optional = false
|
||||
|
||||
-- NFS Mount --
|
||||
c = m:section(TypedSection, "mount", translate("Mounted Points"))
|
||||
c.anonymous = true
|
||||
c.addremove = true
|
||||
c.template = "cbi/tblsection"
|
||||
|
||||
en = c:option(Flag, "enabled", translate("Enable"))
|
||||
en.default = "1"
|
||||
en.rmempty = false
|
||||
|
||||
sr = c:option(Value, "source", translate("source"))
|
||||
sr.placeholder = "192.168.1.1:/mnt/*"
|
||||
sr.rmempty = false
|
||||
sr.optional = false
|
||||
|
||||
ph2 = c:option(Value, "target", translate("target"))
|
||||
ph2.placeholder = "/mnt/nfs/*"
|
||||
ph2.rmempty = false
|
||||
ph2.optional = false
|
||||
|
||||
op = c:option(Value, "options", translate("options"))
|
||||
op.placeholder = "rw,nolock"
|
||||
op.rmempty = false
|
||||
op.optional = false
|
||||
|
||||
de = c:option(Value, "delay", translate("delay"))
|
||||
de.placeholder = "5"
|
||||
de.rmempty = false
|
||||
de.optional = false
|
||||
|
||||
if nixio.fs.access("/etc/config/fstab") then
|
||||
ph1.titleref = luci.dispatcher.build_url("admin", "system", "mounts")
|
||||
ph2.titleref = luci.dispatcher.build_url("admin", "system", "mounts")
|
||||
end
|
||||
|
||||
local apply = luci.http.formvalue("cbi.apply")
|
||||
if apply then
|
||||
io.popen("/etc/init.d/nfs reload")
|
||||
end
|
||||
|
||||
return m
|
32
package/lean/luci-app-nfs/po/zh-cn/nfs.po
Normal file
32
package/lean/luci-app-nfs/po/zh-cn/nfs.po
Normal file
@ -0,0 +1,32 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid "NFS Manage"
|
||||
msgstr "NFS 管理"
|
||||
|
||||
msgid "Shared Directories"
|
||||
msgstr "共享目录"
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "Path"
|
||||
msgstr "路径"
|
||||
|
||||
msgid "Clients"
|
||||
msgstr "允许的客户端"
|
||||
|
||||
msgid "Mounted Points"
|
||||
msgstr "已挂载的目录"
|
||||
|
||||
msgid "source"
|
||||
msgstr "源目录"
|
||||
|
||||
msgid "target"
|
||||
msgstr "挂载到"
|
||||
|
||||
msgid "options"
|
||||
msgstr "选项"
|
||||
|
||||
msgid "delay"
|
||||
msgstr "延迟时间"
|
6
package/lean/luci-app-nfs/root/etc/config/nfs
Normal file
6
package/lean/luci-app-nfs/root/etc/config/nfs
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
config share
|
||||
option enabled '0'
|
||||
option path '/mnt'
|
||||
option clients '*'
|
||||
option options 'rw,sync,root_squash,all_squash,insecure,no_subtree_check'
|
75
package/lean/luci-app-nfs/root/etc/init.d/nfs
Executable file
75
package/lean/luci-app-nfs/root/etc/init.d/nfs
Executable file
@ -0,0 +1,75 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
START=45
|
||||
STOP=99
|
||||
NAME="nfs"
|
||||
|
||||
nfs_share() {
|
||||
|
||||
local enabled path clients options
|
||||
config_get_bool enabled "$1" enabled 0
|
||||
for opt in path clients options
|
||||
do
|
||||
config_get "$opt" "$1" "$opt"
|
||||
done
|
||||
|
||||
if [ "$enabled" = 1 ]; then
|
||||
grep -qs $path /etc/exports
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "$path\t$clients($options)" >>/etc/exports
|
||||
exportfs -r
|
||||
fi
|
||||
elif [ "$enabled" = 0 ]; then
|
||||
exportfs -u | grep -qs $path
|
||||
if [ $? -eq 0 ]; then
|
||||
exportfs -u $clients:$path
|
||||
fi
|
||||
fi
|
||||
exportfs -r
|
||||
}
|
||||
|
||||
nfs_share_stop() {
|
||||
exportfs -au &>/dev/null
|
||||
}
|
||||
|
||||
nfs_mount() {
|
||||
|
||||
local enabled target source options delay
|
||||
config_get_bool enabled "$1" enabled 0
|
||||
for opt in target source options delay
|
||||
do
|
||||
config_get "$opt" "$1" "$opt"
|
||||
done
|
||||
|
||||
if [ "$enabled" = 1 ]; then
|
||||
if [ "$delay" -a $delay -gt 0 ]; then
|
||||
logger "NetMount: Sleep $delay seconds before mount"
|
||||
sleep $delay
|
||||
fi
|
||||
grep -qs $target /proc/mounts
|
||||
if [ $? -ne 0 ]; then
|
||||
mkdir -p $target
|
||||
logger "NetMount: Mounting $source in $target"
|
||||
mount -t nfs -o $options $source $target
|
||||
fi
|
||||
elif [ "$enabled" = 0 ]; then
|
||||
if grep -qs $target /proc/mounts; then
|
||||
umount -fr $target
|
||||
sleep $delay
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
config_load "$NAME"
|
||||
config_foreach nfs_share share
|
||||
config_foreach nfs_mount mount
|
||||
}
|
||||
|
||||
stop() {
|
||||
nfs_share_stop
|
||||
}
|
||||
|
||||
restart() {
|
||||
echo > /etc/exports
|
||||
start
|
||||
}
|
14
package/lean/luci-app-nfs/root/etc/uci-defaults/nfs
Normal file
14
package/lean/luci-app-nfs/root/etc/uci-defaults/nfs
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@nfs[-1]
|
||||
add ucitrack nfs
|
||||
set ucitrack.@nfs[-1].init=nfs
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
/etc/init.d/nfs enable && /etc/init.d/nfs restart
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user