mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
luci-app-go-aliyundrive-webdav: add package (#8112)
Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com>
This commit is contained in:
parent
67d86bf3cf
commit
eff943777d
81
package/lean/go-aliyundrive-webdav/Makefile
Normal file
81
package/lean/go-aliyundrive-webdav/Makefile
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# SPDX-Identifier-License: GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Copyright (C) 2021 ImmortalWrt.org
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=go-aliyundrive-webdav
|
||||||
|
PKG_VERSION:=1.0.12
|
||||||
|
PKG_RELEASE:=$(AUTORELEASE)
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=https://codeload.github.com/LinkLeong/go-aliyundrive-webdav/tar.gz/v$(PKG_VERSION)?
|
||||||
|
PKG_HASH:=eb60256131240adaa34e2039114237f8cdd9016233da1a417dace6b10bda4d61
|
||||||
|
|
||||||
|
PKG_LICENSE:=Apache-2.0
|
||||||
|
PKG_LICENSE_FILE:=LICENSE
|
||||||
|
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||||
|
|
||||||
|
PKG_CONFIG_DEPENDS:= \
|
||||||
|
CONFIG_GO_ALIYUNDRIVE_WEBDAV_COMPRESS_GOPROXY \
|
||||||
|
CONFIG_GO_ALIYUNDRIVE_WEBDAV_COMPRESS_UPX
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=golang/host
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
PKG_USE_MIPS16:=0
|
||||||
|
|
||||||
|
GO_PKG:=go-aliyun-webdav
|
||||||
|
GO_PKG_LDFLAGS:=-s -w
|
||||||
|
GO_PKG_LDFLAGS_X:=main.Version=v$(PKG_VERSION)
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||||
|
|
||||||
|
define Package/go-aliyundrive-webdav
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
SUBMENU:=File Transfer
|
||||||
|
TITLE:=A WebDav server for AliyunDrive
|
||||||
|
URL:=https://github.com/LinkLeong/go-aliyundrive-webdav
|
||||||
|
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/go-aliyundrive-webdav/config
|
||||||
|
config GO_ALIYUNDRIVE_WEBDAV_COMPRESS_GOPROXY
|
||||||
|
bool "Compiling with GOPROXY proxy"
|
||||||
|
default n
|
||||||
|
|
||||||
|
config GO_ALIYUNDRIVE_WEBDAV_COMPRESS_UPX
|
||||||
|
bool "Compress executable files with UPX"
|
||||||
|
default y
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_GO_ALIYUNDRIVE_WEBDAV_COMPRESS_GOPROXY),y)
|
||||||
|
export GO111MODULE=on
|
||||||
|
export GOPROXY=https://goproxy.baidu.com
|
||||||
|
endif
|
||||||
|
|
||||||
|
define Package/go-aliyundrive-webdav/conffiles
|
||||||
|
/etc/config/go-aliyundrive-webdav
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(call GoPackage/Build/Compile)
|
||||||
|
ifeq ($(CONFIG_GO_ALIYUNDRIVE_WEBDAV_COMPRESS_UPX),y)
|
||||||
|
$(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/go-aliyun-webdav
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/go-aliyundrive-webdav/install
|
||||||
|
$(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin/
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/go-aliyun-webdav $(1)/usr/bin/go-aliyundrive-webdav
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/etc/config/
|
||||||
|
$(INSTALL_CONF) $(CURDIR)/files/go-aliyundrive-webdav.config $(1)/etc/config/go-aliyundrive-webdav
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d/
|
||||||
|
$(INSTALL_BIN) $(CURDIR)/files/go-aliyundrive-webdav.init $(1)/etc/init.d/go-aliyundrive-webdav
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call GoBinPackage,go-aliyundrive-webdav))
|
||||||
|
$(eval $(call BuildPackage,go-aliyundrive-webdav))
|
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
config go-aliyundrive-webdav 'config'
|
||||||
|
option enabled '0'
|
||||||
|
|
||||||
|
# Listening port
|
||||||
|
option port '8085'
|
||||||
|
|
||||||
|
# Refresh token
|
||||||
|
option rt ''
|
||||||
|
|
||||||
|
# Mounting directory
|
||||||
|
option path '/'
|
||||||
|
|
||||||
|
# Webdav auth username, default: admin
|
||||||
|
option user 'admin'
|
||||||
|
|
||||||
|
# Webdav auth password, default: 123456
|
||||||
|
option pwd '123456'
|
||||||
|
|
||||||
|
# Enable detailed logging
|
||||||
|
option verbose '0'
|
||||||
|
|
50
package/lean/go-aliyundrive-webdav/files/go-aliyundrive-webdav.init
Executable file
50
package/lean/go-aliyundrive-webdav/files/go-aliyundrive-webdav.init
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org>
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
START=99
|
||||||
|
|
||||||
|
CONF="go-aliyundrive-webdav"
|
||||||
|
PROG="/usr/bin/go-aliyundrive-webdav"
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
config_load "$CONF"
|
||||||
|
|
||||||
|
local enabled
|
||||||
|
config_get_bool enabled "config" "enabled"
|
||||||
|
[ "$enabled" -eq "1" ] || return 1
|
||||||
|
|
||||||
|
local port rt path user pwd verbose
|
||||||
|
config_get port "config" "port"
|
||||||
|
config_get rt "config" "rt"
|
||||||
|
config_get path "config" "path"
|
||||||
|
config_get user "config" "user"
|
||||||
|
config_get pwd "config" "pwd"
|
||||||
|
config_get_bool verbose "config" "verbose"
|
||||||
|
|
||||||
|
procd_open_instance "$CONF"
|
||||||
|
|
||||||
|
procd_set_param command "$PROG"
|
||||||
|
|
||||||
|
procd_append_param command "-rt" "$rt"
|
||||||
|
procd_append_param command "-port" "$port"
|
||||||
|
procd_append_param command "-path" "$path"
|
||||||
|
procd_append_param command "-user" "$user"
|
||||||
|
procd_append_param command "-pwd" "$pwd"
|
||||||
|
[ "$verbose" -eq "0" ] || procd_append_param command "-v"
|
||||||
|
|
||||||
|
procd_set_param stdout 1
|
||||||
|
procd_set_param stderr 1
|
||||||
|
procd_set_param respawn
|
||||||
|
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_service() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
service_triggers() {
|
||||||
|
procd_add_reload_trigger "go-aliyundrive-webdav"
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
From a427929b0267a85ef6924aa3449077420beb23e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tianling Shen <i@cnsztl.eu.org>
|
||||||
|
Date: Sun, 24 Oct 2021 17:11:10 +0800
|
||||||
|
Subject: [PATCH] fix: read version from `Version` variable
|
||||||
|
|
||||||
|
Signed-off-by: Tianling Shen <i@cnsztl.eu.org>
|
||||||
|
---
|
||||||
|
main.go | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/main.go
|
||||||
|
+++ b/main.go
|
||||||
|
@@ -22,7 +22,7 @@ func init() {
|
||||||
|
cache.Init()
|
||||||
|
}
|
||||||
|
|
||||||
|
-var Version = "v1.0.3"
|
||||||
|
+var Version = "v1.0.12"
|
||||||
|
|
||||||
|
type Task struct {
|
||||||
|
Id string `json:"id"`
|
||||||
|
@@ -49,7 +49,7 @@ func main() {
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
if *versin {
|
||||||
|
- fmt.Println("v1.0.9")
|
||||||
|
+ fmt.Println(Version)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(*refreshToken) == 0 || len(os.Args) < 3 || os.Args[1] != "-rt" {
|
15
package/lean/luci-app-go-aliyundrive-webdav/Makefile
Normal file
15
package/lean/luci-app-go-aliyundrive-webdav/Makefile
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=luci-app-go-aliyundrive-webdav
|
||||||
|
PKG_VERSION:=1.0.2
|
||||||
|
PKG_RELEASE:=20211031
|
||||||
|
|
||||||
|
PKG_MAINTAINER:=jerrykuku <jerrykuku@qq.com>
|
||||||
|
|
||||||
|
LUCI_TITLE:=Luci for go-aliyundrive-webdav
|
||||||
|
LUCI_PKGARCH:=all
|
||||||
|
LUCI_DEPENDS:=+lua +libuci-lua +go-aliyundrive-webdav
|
||||||
|
|
||||||
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|
||||||
|
# call BuildPackage - OpenWrt buildroot signature
|
@ -0,0 +1,23 @@
|
|||||||
|
-- Copyright (C) 2021 jerryk <jerrykuku@qq.com>
|
||||||
|
-- This is free software, licensed under the APACHE LICENSE, VERSION 2.0.
|
||||||
|
|
||||||
|
module("luci.controller.go-aliyundrive-webdav", package.seeall)
|
||||||
|
|
||||||
|
function index()
|
||||||
|
if not nixio.fs.access("/etc/config/go-aliyundrive-webdav") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
entry({"admin", "services", "go-aliyundrive-webdav"}, alias("admin", "services", "go-aliyundrive-webdav", "client"),_("Go AliyunDrive WebDAV"), 10).dependent = true -- 首页
|
||||||
|
entry({"admin", "services", "go-aliyundrive-webdav", "client"}, cbi("go-aliyundrive-webdav/client"),_("Settings"), 1).leaf = true -- 客户端配置
|
||||||
|
entry({"admin", "services", "go-aliyundrive-webdav", "log"}, cbi("go-aliyundrive-webdav/log"),_("Log"), 2).leaf = true -- 日志页面
|
||||||
|
|
||||||
|
entry({"admin", "services", "go-aliyundrive-webdav", "status"}, call("action_status")).leaf = true
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function action_status()
|
||||||
|
local e = {}
|
||||||
|
e.running = luci.sys.call("pidof go-aliyundrive-webdav >/dev/null") == 0
|
||||||
|
luci.http.prepare_content("application/json")
|
||||||
|
luci.http.write_json(e)
|
||||||
|
end
|
@ -0,0 +1,49 @@
|
|||||||
|
-- Copyright (C) 2021 jerryk <jerrykuku@qq.com>
|
||||||
|
-- This is free software, licensed under the APACHE LICENSE, VERSION 2.0.
|
||||||
|
|
||||||
|
|
||||||
|
local uci = luci.model.uci.cursor()
|
||||||
|
local m, e
|
||||||
|
|
||||||
|
m = Map("go-aliyundrive-webdav")
|
||||||
|
m.title = translate("Go AliyunDrive WebDAV")
|
||||||
|
m.description = translate("<a href=\"https://github.com/LinkLeong/go-aliyun-webdav\" target=\"_blank\">Project GitHub URL</a>")
|
||||||
|
|
||||||
|
m:section(SimpleSection).template = "go-aliyundrive-webdav/go-aliyundrive-webdav_status"
|
||||||
|
|
||||||
|
e = m:section(TypedSection, "go-aliyundrive-webdav")
|
||||||
|
e.anonymous = true
|
||||||
|
|
||||||
|
enable = e:option(Flag, "enabled", translate("Enabled"))
|
||||||
|
enable.rmempty = false
|
||||||
|
|
||||||
|
rt_token = e:option(Value, "rt", translate("Refresh Token"))
|
||||||
|
rt_token.description = translate("<a href=\"https://github.com/LinkLeong/go-aliyun-webdav#%E6%B5%8F%E8%A7%88%E5%99%A8%E8%8E%B7%E5%8F%96refreshtoken%E6%96%B9%E5%BC%8F\" target=\"_blank\">How to get refresh token</a>")
|
||||||
|
|
||||||
|
port = e:option(Value, "port", translate("Port"))
|
||||||
|
port.default = "8085"
|
||||||
|
port.datatype = "port"
|
||||||
|
|
||||||
|
path = e:option(Value, "path", translate("Mounting directory"))
|
||||||
|
path.description = translate("Access aliyundrive directory, defaults /.")
|
||||||
|
path.default = "/"
|
||||||
|
|
||||||
|
user = e:option(Value, "user", translate("Username"))
|
||||||
|
user.default = "admin"
|
||||||
|
|
||||||
|
pwd = e:option(Value, "pwd", translate("Password"))
|
||||||
|
pwd.password = true
|
||||||
|
pwd.default = "123456"
|
||||||
|
|
||||||
|
verbose = e:option(Flag, "verbose", translate("Enable detailed logging"))
|
||||||
|
verbose.default = "0"
|
||||||
|
verbose.rmempty = false
|
||||||
|
verbose.optional = false
|
||||||
|
|
||||||
|
|
||||||
|
local e = luci.http.formvalue("cbi.apply")
|
||||||
|
if e then
|
||||||
|
io.popen("/etc/init.d/go-aliyundrive-webdav restart")
|
||||||
|
end
|
||||||
|
|
||||||
|
return m
|
@ -0,0 +1,4 @@
|
|||||||
|
m = Map("log")
|
||||||
|
m.title = translate("Detailed Log (In Development)")
|
||||||
|
|
||||||
|
return m
|
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
XHR.poll(3, '<%=url([[admin]], [[services]], [[go-aliyundrive-webdav]], [[status]])%>', null,
|
||||||
|
function (x, data) {
|
||||||
|
var tb = document.getElementById('go-aliyundrive-webdav_status');
|
||||||
|
if (data && tb) {
|
||||||
|
if (data.running) {
|
||||||
|
tb.innerHTML = '<em><b><font color=green> go-aliyundrive-webdav <%:RUNNING%></font></b></em>';
|
||||||
|
} else {
|
||||||
|
tb.innerHTML = '<em><b><font color=red> go-aliyundrive-webdav <%:NOT RUNNING%></font></b></em>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.mar-10 {
|
||||||
|
margin-left: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<fieldset class="cbi-section">
|
||||||
|
<p id="go-aliyundrive-webdav_status">
|
||||||
|
<em>
|
||||||
|
<%:Collecting data...%>
|
||||||
|
</em>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
@ -0,0 +1,58 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
|
||||||
|
msgid "Go AliyunDrive"
|
||||||
|
msgstr "Go 阿里云盘"
|
||||||
|
|
||||||
|
msgid "Go AliyunDrive WebDAV"
|
||||||
|
msgstr "Go 阿里云盘 WebDAV"
|
||||||
|
|
||||||
|
msgid "Enabled"
|
||||||
|
msgstr "启用"
|
||||||
|
|
||||||
|
msgid "Refresh Token"
|
||||||
|
msgstr "Refresh Token"
|
||||||
|
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "监听端口"
|
||||||
|
|
||||||
|
msgid "Mounting directory"
|
||||||
|
msgstr "挂载目录"
|
||||||
|
|
||||||
|
msgid "Access aliyundrive directory, defaults /."
|
||||||
|
msgstr "访问 aliyundrive 目录,默认为 / 。"
|
||||||
|
|
||||||
|
msgid "Username"
|
||||||
|
msgstr "用户名"
|
||||||
|
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "密码"
|
||||||
|
|
||||||
|
msgid "Collecting data..."
|
||||||
|
msgstr "获取数据中..."
|
||||||
|
|
||||||
|
msgid "RUNNING"
|
||||||
|
msgstr "运行中"
|
||||||
|
|
||||||
|
msgid "NOT RUNNING"
|
||||||
|
msgstr "未运行"
|
||||||
|
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "设置"
|
||||||
|
|
||||||
|
msgid "Log"
|
||||||
|
msgstr "日志"
|
||||||
|
|
||||||
|
msgid "Detailed Log (In Development)"
|
||||||
|
msgstr "详细日志(开发中)"
|
||||||
|
|
||||||
|
msgid "Enable detailed logging"
|
||||||
|
msgstr "启用详细日志记录"
|
||||||
|
|
||||||
|
msgid "<a href=\"https://github.com/LinkLeong/go-aliyun-webdav\" target=\"_blank\">Project GitHub URL</a>"
|
||||||
|
msgstr "<a href=\"https://github.com/LinkLeong/go-aliyun-webdav\" target=\"_blank\">GitHub 项目地址</a>"
|
||||||
|
|
||||||
|
msgid "<a href=\"https://github.com/LinkLeong/go-aliyun-webdav#%E6%B5%8F%E8%A7%88%E5%99%A8%E8%8E%B7%E5%8F%96refreshtoken%E6%96%B9%E5%BC%8F\" target=\"_blank\">How to get refresh token</a>"
|
||||||
|
msgstr "<a href=\"https://github.com/LinkLeong/go-aliyun-webdav#%E6%B5%8F%E8%A7%88%E5%99%A8%E8%8E%B7%E5%8F%96refreshtoken%E6%96%B9%E5%BC%8F\" target=\"_blank\">查看获取 refresh token 的方法</a>"
|
||||||
|
|
||||||
|
|
1
package/lean/luci-app-go-aliyundrive-webdav/po/zh_Hans
Symbolic link
1
package/lean/luci-app-go-aliyundrive-webdav/po/zh_Hans
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
zh-cn
|
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
delete ucitrack.@go-aliyundrive-webdav[-1]
|
||||||
|
add ucitrack go-aliyundrive-webdav
|
||||||
|
set ucitrack.@go-aliyundrive-webdav[-1].init=go-aliyundrive-webdav
|
||||||
|
commit ucitrack
|
||||||
|
EOF
|
||||||
|
|
||||||
|
rm -f /tmp/luci-indexcache
|
||||||
|
exit 0
|
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"luci-app-go-aliyundrive-webdav": {
|
||||||
|
"description": "Grant UCI access for luci-app-go-aliyundrive-webdav",
|
||||||
|
"read": {
|
||||||
|
"uci": [ "go-aliyundrive-webdav" ]
|
||||||
|
},
|
||||||
|
"write": {
|
||||||
|
"uci": [ "go-aliyundrive-webdav" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user