luci-app-rclone: sync with upstream source

This commit is contained in:
CN_SZTL 2020-01-19 11:45:32 +08:00
parent 40d8ac90b5
commit b1241c92a0
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
8 changed files with 201 additions and 179 deletions

View File

@ -1,23 +1,23 @@
####
# File: /Makefile
# Project: luci-app-rclone
# File Created: Wednesday, 9th October 2019 1:39:36 pm
# Author: ElonH[EH](elonhhuang@gmail.com)
# License: GNU General Public License v3.0 or later(http://www.gnu.org/licenses/gpl-3.0-standalone.html)
# Copyright (C) 2019 [ElonH]
####
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for Rclone
LUCI_DEPENDS:=+rclone +rclone-webui-react
LUCI_PKGARCH:=all
PKG_NAME:=luci-app-rclone
PKG_VERSION:=1.0.1
PKG_RELEASE:=1
PKG_LICENSE:=GPLv3.0+
PKG_MAINTAINER:=ElonH <elonhhuang@gmail.com>
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature
####
# File: /Makefile
# Project: luci-app-rclone
# File Created: Wednesday, 9th October 2019 1:39:36 pm
# Author: ElonH[EH](elonhhuang@gmail.com)
# License: GNU General Public License v3.0 or later(http://www.gnu.org/licenses/gpl-3.0-standalone.html)
# Copyright (C) 2019 [ElonH]
####
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for Rclone
LUCI_DEPENDS:=+rclone +rclone-webui-react
LUCI_PKGARCH:=all
PKG_NAME:=luci-app-rclone
PKG_VERSION:=1.0.5
PKG_RELEASE:=1
PKG_LICENSE:=GPLv3.0+
PKG_MAINTAINER:=ElonH <elonhhuang@gmail.com>
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -1,8 +1,8 @@
module("luci.controller.rclone", package.seeall)
function index()
if not nixio.fs.access("/etc/config/rclone") then
return
end
entry({"admin", "services", "rclone"}, cbi("rclone"), _("Rclone"), 100 ).dependent = false
end
module("luci.controller.rclone", package.seeall)
function index()
if not nixio.fs.access("/var/etc/config/rclone") then
return
end
entry({"admin", "services", "rclone"}, cbi("rclone"), _("Rclone"), 100 ).dependent = false
end

View File

@ -1,86 +1,96 @@
require('luci.sys')
require('luci.util')
require('luci.model.ipkg')
local fs = require 'nixio.fs'
local uci = require 'luci.model.uci'.cursor()
local m, s
local running = (luci.sys.call('pidof rclone > /dev/null') == 0)
local state_msg = ''
local trport = uci:get('rclone', 'config', 'port')
if running then
state_msg = '<b><font color="green">' .. translate('rclone running') .. '</font></b>'
else
state_msg = '<b><font color="red">' .. translate('rclone not run') .. '</font></b>'
end
m =
Map(
'rclone',
translate('Rclone'),
translate('Rclone ("rsync for cloud storage") is a command line program to sync root/usr/bin and directories to and from different cloud storage providers.') ..
' <br/> <br/> ' ..
translate('rclone state') ..
' : ' ..
state_msg ..
'<br/> <br/>' ..
translate('Installed Web Interface') ..
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" class="cbi-button" style="margin: 0 5px;" value=" ' ..
translate('Webui React') ..
" \" onclick=\"window.open('http://'+window.location.hostname+'/rclone-webui-react')\"/> <br/><br/>"
)
s = m:section(TypedSection, 'global', translate('global'))
s.addremove = false
s.anonymous = true
enable = s:option(Flag, 'enabled', translate('run Rclone as daemon'))
enable.rmempty = false
s = m:section(TypedSection, 'conf', translate('configure'))
s.addremove = false
s.anonymous = true
o = s:option(ListValue, 'addr_type', translate('listen address'))
o:value('local', translate('localhost address'))
o:value('lan', translate('local network address'))
o:value('wan', translate('all address'))
o.default = 'lan'
o.rmempty = false
o = s:option(Value, 'port', translate('listen port'))
o.placeholder = 5572
o.default = 5572
o.datatype = 'port'
o.rmempty = false
o = s:option(Value, 'config_path', translate('rclone configuration file path'))
o.placeholder = '/etc/rclone/rclone.conf'
o.default = '/etc/rclone/rclone.conf'
o.rmempty = false
o = s:option(Value, 'username', translate('username'))
o.placeholder = 'admin'
o.default = 'admin'
o.rmempty = false
o = s:option(Value, 'password', translate('password'))
o.password = true
o.placeholder = 'admin'
o.default = 'admin'
o.rmempty = false
s = m:section(TypedSection, 'log', translate('log'))
s.addremove = false
s.anonymous = true
o = s:option(Value, 'path', translate('path'))
o.placeholder = '/var/log/rclone/output'
o.default = '/var/log/rclone/output'
o.rmempty = false
return m
require('luci.sys')
require('luci.util')
require('luci.model.ipkg')
local fs = require 'nixio.fs'
local uci = require 'luci.model.uci'.cursor()
local m, s
local running = (luci.sys.call('pidof rclone > /dev/null') == 0)
local state_msg = ''
local trport = uci:get('rclone', 'config', 'port')
local triptype = uci.get('rclone', 'config', 'addr_type')
local trip = ''
if triptype == 'local' then
trip = uci.get('network', 'loopback', 'ipaddr')
elseif triptype == 'lan' then
trip = uci.get('network', 'lan', 'ipaddr')
else
trip = '[ip]'
end
if running then
state_msg = '<b><font color="green">' .. translate('rclone running') .. '</font></b>'
address_msg = translate('rclone address') .. ' : http://' .. trip .. ':' .. trport .. '<br/> <br/>'
else
state_msg = '<b><font color="red">' .. translate('rclone not run') .. '</font></b>'
address_msg = ''
end
m =
Map(
'rclone',
translate('Rclone'),
translate('Rclone ("rsync for cloud storage") is a command line program to sync root/usr/bin and directories to and from different cloud storage providers.') ..
' <br/> <br/> ' .. translate('rclone state') .. ' : ' .. state_msg .. '<br/> <br/>'
.. address_msg ..
translate('Installed Web Interface') ..
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" class="cbi-button" style="margin: 0 5px;" value=" ' ..
translate('Webui React') ..
" \" onclick=\"window.open('http://'+window.location.hostname+'/rclone-webui-react')\"/> <br/><br/>"
)
s = m:section(TypedSection, 'global', translate('global'))
s.addremove = false
s.anonymous = true
enable = s:option(Flag, 'enabled', translate('run Rclone as daemon'))
enable.rmempty = false
s = m:section(TypedSection, 'conf', translate('configure'))
s.addremove = false
s.anonymous = true
o = s:option(ListValue, 'addr_type', translate('listen address'))
o:value('local', translate('localhost address'))
o:value('lan', translate('local network address'))
o:value('all', translate('all address'))
o.default = 'lan'
o.rmempty = false
o = s:option(Value, 'port', translate('listen port'))
o.placeholder = 5572
o.default = 5572
o.datatype = 'port'
o.rmempty = false
o = s:option(Value, 'config_path', translate('rclone configuration file path'))
o.placeholder = '/var/etc/rclone/rclone.conf'
o.default = '/var/etc/rclone/rclone.conf'
o.rmempty = false
o = s:option(Value, 'username', translate('username'))
o.placeholder = 'admin'
o.default = 'admin'
o.rmempty = false
o = s:option(Value, 'password', translate('password'))
o.password = true
o.placeholder = 'admin'
o.default = 'admin'
o.rmempty = false
s = m:section(TypedSection, 'log', translate('log'))
s.addremove = false
s.anonymous = true
o = s:option(Value, 'path', translate('path'))
o.placeholder = '/var/log/rclone/output'
o.default = '/var/log/rclone/output'
o.rmempty = false
return m

View File

@ -9,16 +9,16 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:31
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:41
msgid "Installed Web Interface"
msgstr "Installed Web Interface"
#: luci-app-rclone/luasrc/controller/rclone.lua:7
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:24
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:37
msgid "Rclone"
msgstr "Rclone"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:25
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:38
msgid ""
"Rclone (\"rsync for cloud storage\") is a command line program to sync root/"
"usr/bin and directories to and from different cloud storage providers."
@ -26,71 +26,75 @@ msgstr ""
"Rclone (\"rsync for cloud storage\") is a command line program to sync root/"
"usr/bin and directories to and from different cloud storage providers."
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:33
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:43
msgid "Webui React"
msgstr "Webui React"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:51
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:61
msgid "all address"
msgstr "all address"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:44
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:54
msgid "configure"
msgstr "configure"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:37
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:47
msgid "global"
msgstr "global"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:48
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:58
msgid "listen address"
msgstr "listen address"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:55
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:65
msgid "listen port"
msgstr "listen port"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:50
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:60
msgid "local network address"
msgstr "local network address"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:49
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:59
msgid "localhost address"
msgstr "localhost address"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:77
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:87
msgid "log"
msgstr "log"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:71
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:81
msgid "password"
msgstr "password"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:81
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:91
msgid "path"
msgstr "path"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:61
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:28
msgid "rclone address"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:71
msgid "rclone configuration file path"
msgstr "rclone configuration file path"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:18
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:30
msgid "rclone not run"
msgstr "rclone not run"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:16
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:27
msgid "rclone running"
msgstr "rclone running"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:27
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:39
msgid "rclone state"
msgstr "rclone state"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:41
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:51
msgid "run Rclone as daemon"
msgstr "run Rclone as daemon"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:66
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:76
msgid "username"
msgstr "username"

View File

@ -1,85 +1,89 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:31
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:41
msgid "Installed Web Interface"
msgstr ""
#: luci-app-rclone/luasrc/controller/rclone.lua:7
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:24
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:37
msgid "Rclone"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:25
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:38
msgid ""
"Rclone (\"rsync for cloud storage\") is a command line program to sync root/"
"usr/bin and directories to and from different cloud storage providers."
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:33
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:43
msgid "Webui React"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:51
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:61
msgid "all address"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:44
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:54
msgid "configure"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:37
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:47
msgid "global"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:48
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:58
msgid "listen address"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:55
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:65
msgid "listen port"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:50
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:60
msgid "local network address"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:49
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:59
msgid "localhost address"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:77
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:87
msgid "log"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:71
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:81
msgid "password"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:81
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:91
msgid "path"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:61
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:28
msgid "rclone address"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:71
msgid "rclone configuration file path"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:18
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:30
msgid "rclone not run"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:16
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:27
msgid "rclone running"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:27
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:39
msgid "rclone state"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:41
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:51
msgid "run Rclone as daemon"
msgstr ""
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:66
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:76
msgid "username"
msgstr ""

View File

@ -11,87 +11,91 @@ msgstr ""
"PO-Revision-Date: \n"
"X-Generator: Poedit 2.0.6\n"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:31
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:41
msgid "Installed Web Interface"
msgstr "已安装Web界面"
#: luci-app-rclone/luasrc/controller/rclone.lua:7
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:24
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:37
msgid "Rclone"
msgstr "Rclone"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:25
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:38
msgid ""
"Rclone (\"rsync for cloud storage\") is a command line program to sync root/"
"usr/bin and directories to and from different cloud storage providers."
msgstr ""
"Rclone是一款的命令行工具支持在不同对象存储、网盘间同步、上传、下载数据。"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:33
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:43
msgid "Webui React"
msgstr "Webui React"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:51
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:61
msgid "all address"
msgstr "全部地址"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:44
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:54
msgid "configure"
msgstr "配置"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:37
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:47
msgid "global"
msgstr "全局"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:48
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:58
msgid "listen address"
msgstr "监听地址"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:55
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:65
msgid "listen port"
msgstr "监听端口"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:50
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:60
msgid "local network address"
msgstr "局域网地址"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:49
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:59
msgid "localhost address"
msgstr "本机地址"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:77
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:87
msgid "log"
msgstr "日志"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:71
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:81
msgid "password"
msgstr "密码"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:81
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:91
msgid "path"
msgstr "路径"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:61
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:28
msgid "rclone address"
msgstr "rclone 地址"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:71
msgid "rclone configuration file path"
msgstr "rclone 配置文件地址"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:18
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:30
msgid "rclone not run"
msgstr "rclone未运行"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:16
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:27
msgid "rclone running"
msgstr "rclone 运行中"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:27
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:39
msgid "rclone state"
msgstr "rclone 状态"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:41
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:51
msgid "run Rclone as daemon"
msgstr "启动 rclone 后台服务"
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:66
#: luci-app-rclone/luasrc/model/cbi/rclone.lua:76
msgid "username"
msgstr "用户名"

View File

@ -4,7 +4,7 @@ config global 'global'
option user 'rclone'
config conf 'config'
option config_path '/etc/rclone/rclone.conf'
option config_path '/var/etc/rclone/rclone.conf'
option port '5572'
option username 'admin'
option password 'admin'

View File

@ -66,7 +66,7 @@ start_service() {
addr="$(uci get network.loopback.ipaddr)"
elif [ "${addr_type}" == "lan" ]; then
addr="$(uci get network.lan.ipaddr)"
elif [ "${addr_type}" == "wan" ]; then
elif [ "${addr_type}" == "all" ]; then
addr=""
fi
[ "$enabled" == "1" ] || { _info "Instance \"rclone\" disabled."; return 1; }