如下是对LuCI2源码中每个文件大致功能的解读,可以据此去看源码
feeds/luci2/luci2 ├── htdocs │ ├── luci2 │ │ ├── bootstrap.js Bootstrap框架源码,简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。http://www.bootcss.com/ │ │ ├── cbi.js 定义了直接读写UCI系统中的配置文件(位于/etc/config/目录下)的一些JS函数 │ │ ├── css 样式 │ │ │ ├── bootstrap.css │ │ │ └── luci2.css │ │ ├── firewall.js 应该是防火墙相关的一些函数封装 │ │ ├── html5.js 应该为了html5做向后兼容老的浏览器吧 │ │ ├── icons 一些图标文件 │ │ │ ├── bridge_disabled.png │ │ │ ├── bridge.png │ │ │ ├── cbi │ │ │ │ ├── add.gif │ │ │ │ ├── apply.gif │ │ │ │ ├── arrow.gif │ │ │ │ ├── down.gif │ │ │ │ ├── download.gif │ │ │ │ ├── edit.gif │ │ │ │ ├── fieldadd.gif │ │ │ │ ├── file.gif │ │ │ │ ├── find.gif │ │ │ │ ├── folder.gif │ │ │ │ ├── help.gif │ │ │ │ ├── key.gif │ │ │ │ ├── link.gif │ │ │ │ ├── reload.gif │ │ │ │ ├── remove.gif │ │ │ │ ├── reset.gif │ │ │ │ ├── save.gif │ │ │ │ ├── up.gif │ │ │ │ └── user.gif │ │ │ ├── encryption_disabled.png │ │ │ ├── encryption.png │ │ │ ├── ethernet_disabled.png │ │ │ ├── ethernet.png │ │ │ ├── loading.gif │ │ │ ├── port_down.png │ │ │ ├── port_up.png │ │ │ ├── progress.gif │ │ │ ├── signal-0-25.png │ │ │ ├── signal-0.png │ │ │ ├── signal-25-50.png │ │ │ ├── signal-50-75.png │ │ │ ├── signal-75-100.png │ │ │ ├── signal-none.png │ │ │ ├── switch_disabled.png │ │ │ ├── switch.png │ │ │ ├── tunnel_disabled.png │ │ │ ├── tunnel.png │ │ │ ├── vlan_disabled.png │ │ │ ├── vlan.png │ │ │ ├── wifi_big_disabled.png │ │ │ ├── wifi_big.png │ │ │ ├── wifi_disabled.png │ │ │ └── wifi.png │ │ ├── jquery-1.9.1.js │ │ ├── jquery.peity.js │ │ ├── luci2.js luci2对象的函数定义 │ │ ├── network.js 读写有线无线网络相关参数的函数;处理ubus的network和luci2.network对象的一些函数 │ │ ├── proto │ │ │ ├── 6in4.js │ │ │ ├── 6rd.js │ │ │ ├── 6to4.js │ │ │ ├── dhcp.js │ │ │ ├── dhcpv6.js │ │ │ ├── dslite.js │ │ │ ├── none.js │ │ │ └── static.js │ │ ├── respond.min.js │ │ ├── rpc.js 实现JSON-RPC协议的一些函数 │ │ ├── session.js 实现用户登陆认证相关的一些函数;处理ubus session对象的一些方法,例如login/access等等; │ │ ├── system.js 获取系统信息,以及控制系统reboot的一些函数 │ │ ├── template 每一个luCI2子页面对应的模板 │ │ │ ├── network.diagnostics.htm │ │ │ ├── network.hosts.htm │ │ │ ├── network.interfaces.htm │ │ │ ├── network.routes.htm │ │ │ ├── network.switch.htm │ │ │ ├── network.wireless.htm │ │ │ ├── status.dmesg.htm │ │ │ ├── status.overview.htm │ │ │ ├── status.processes.htm │ │ │ ├── status.routes.htm │ │ │ ├── status.syslog.htm │ │ │ ├── system.admin.htm │ │ │ ├── system.cron.htm │ │ │ ├── system.leds.htm │ │ │ ├── system.software.htm │ │ │ ├── system.startup.htm │ │ │ ├── system.system.htm │ │ │ ├── system.upgrade.htm │ │ │ └── system.users.htm │ │ ├── uci.js 通过ubus通讯访问UCI系统提供的一些函数;get/set/add/delete/apply等等,具体可以用ubus -v list来看 │ │ ├── ui.js UI相关的一组函数,例如loading,dialog,upload,login,cryptPassword,renderView,renderViewMenu等等 │ │ ├── view 每个LuCI2子页面也需要定义一个视图,存放在/www/luci2/view/目录下 │ │ │ ├── network.diagnostics.js │ │ │ ├── network.hosts.js │ │ │ ├── network.interfaces.js │ │ │ ├── network.routes.js │ │ │ ├── network.switch.js │ │ │ ├── network.wireless.js │ │ │ ├── status.dmesg.js │ │ │ ├── status.overview.js │ │ │ ├── status.processes.js │ │ │ ├── status.routes.js │ │ │ ├── status.syslog.js │ │ │ ├── system.admin.js │ │ │ ├── system.cron.js │ │ │ ├── system.leds.js │ │ │ ├── system.software.js │ │ │ ├── system.startup.js │ │ │ ├── system.system.js │ │ │ ├── system.upgrade.js │ │ │ └── system.users.js │ │ ├── wireless.js 定义了一组获得当前wifi运行参数的函数,例如SSID,KEY认证/加密方式,bitrate等等; 处理ubus的iwinfo对象的一些函数; │ │ └── zoneinfo.json │ └── luci2.html 网页的主页 ├── Makefile ├── share │ ├── acl.d 这里的文件最终会拷贝到 /usr/share/rpcd/acl.d/*.json. 由rpcd来判断有没有访问操作权限;rpcd (OpenWrt ubus RPC backend server)//Openwrt ubus RPC后端服务;更多信息看https://openwrt.org/docs/techref/ubus │ │ └── luci2.json │ └── menu.d 定义了整个网页的菜单 │ ├── network.json 一级菜单network项,及其子菜单的定义 │ ├── status.json 一级菜单status项,及其子菜单的定义 │ └── system.json 一级菜单system项,及其子菜单的定义 └── src ├── CMakeLists.txt ├── io │ ├── CMakeLists.txt │ ├── main.c │ ├── multipart_parser.c │ └── multipart_parser.h └── rpcd ├── bwmon.c 网络监控:网络发送和接收数据统计等等; ├── CMakeLists.txt └── luci2.c LuCI2主要通过ubus和系统进行交互,但是很多功能不提供ubus接口,因此LuCI2通过提供在附加ubus名称空间的rpcd插件来解决;
|