mritd / koolshare-gdddns

koolshare 固件 Godaddy ddns 插件
MIT License
32 stars 27 forks source link

koolshare-gdddns

简介

这是一个适用于梅林固件(koolshare) 的 Godaddy DDNS 插件,开发参考了 aliddns ,并完善了一些安装卸载脚本

插件使用

开发规范

鉴于 koolshare 还没有一个完整的开发文档(有的可以发我下,感谢),以下总结了一些写这个插件摸索的一些经验

本插件目录结构规范

本插件目录结构如下

├── LICENSE                        授权声明
├── README.md                      说明文档
├── build.sh                       编译脚本,一般为打包脚本,感觉也可以写点从源码编译的动作
├── gdddns                         插件主目录(目录名最好和文件名等一致,这是一种默认的约定,暂不确定乱写会不会有问题)
│   ├── install.sh                 安装脚本(默认离线安装会执行此脚本,这里面主要是向 DBUS 注册当前插件状态以及复制文件等)
│   ├── res                        资源目录(一般放插件图标等静态资源文件,按照 web 开发的理解这里面可以放 js、css 等)
│   │   └── icon-gdddns.png        插件图标(命令方式最好和已有插件保持一致,即 icon-xxxx,图片格式暂不确定是否有要求,感觉应该没有)
│   ├── scripts                    插件辅助执行脚本(本插件只需要用脚本执行,其他插件如 shadowsocks 等有二进制执行文件,这里面放的都是辅助脚本)
│   │   ├── gdddns_config.sh       插件配置脚本(主要完成安装、卸载初始化配置等)
│   │   ├── gdddns_update.sh       本插件的主要执行脚本(DDNS 更新域名记录主要从这里执行)
│   │   └── uninstall_gdddns.sh    卸载脚本(默认插件中心点击卸载后,会调用此脚本,主要执行反注册 DBUS 信息和删除插件文件)
│   └── webs                       页面资源文件(主要使用 asp 编写)
│       └── Module_gdddns.asp      插件设置页面(该页面通过 jQuery post 方式调用后端脚本,同时页面内可以使用标签动态调用 DBUS)
└── gdddns.tar.gz                  插件打包文件

约定优于配置: 默认的安装卸载脚本文件名(install.sh、uninstall_xxxx.sh) 请不要乱更改,否则可能不会执行;尤其是插件的文件名约定, 最好参考已有插件命名,不要乱造;否则这些脚本可能不会被执行,点击卸载时也只是做了 DBUS 反注册信息而已,实际文件并未被删除

插件中心目录结构规

插件在打包成 tar.gz 文件后,安装时将插件各个目录中的内容释放到 /koolshare 目录,以下是 /koolshare 目录结构

koolshare
├── bin            二进制文件(如果插件需要相关二进制文件,则应当释放到此目录)
├── configs        配置目录(我目前在里面只看到了默认的一个配置,如果插件需要保存配置也可以持久化到此目录,一般为 json 文件)
├── init.d         初始化脚本(放一些初始化脚本,暂时没用到)
├── perp           预处理脚本(个人理解此目录应该放一些每次插件执行都要做的准备脚本)
├── res            资源文件目录
├── scripts        脚本目录
└── webs           页面资源文件(关于 asp 写法可参考其他插件,老本行撸 java 的,感觉跟 jsp 一样...)

从上面 koolshare 目录结构可以看出,实际上插件内的目录结构应该是与其一致的,一般是能少不能多,因为在安装后插件内各个目录中的文件 都会被释放到 /koolshare 目录下的相应目录中(安装脚本控制),除非特殊情情况,比如 shadowsocks 文件很多所以单独创建了文件件(在 /koolshare 下差创建了一个 ss 的目录);

插件更新推送机制