how to integrate your apps into luci as modules?

svn co http://svn.luci.subsignal.org/luci/trunk
make runhttpd
#make run

Reference: LuCI Modules ?
Categories ?

The LuCI modules are divided into several category directories, namely:

* applications (Single applications or plugins for other modules or applications)
* i18n (Translation files)
* libs (Independent libraries)
* modules (Collections of applications)
* themes (Frontend themes)

Each module goes into a subdirectory of any of this category-directories.
Module directory ?

The contents of a module directory are as follows:
Makefile ?

This is the module's makefile. If the module just contains Lua sourcecode or resources then the following Makefile should suffice.

include ../../build/config.mk
include ../../build/module.mk

If you have C(++) code in your module your Makefile should at least contain the following things.

include ../../build/config.mk
include ../../build/gccconfig.mk
include ../../build/module.mk

compile:
# Commands to compile and link your C-code
# and to install them under the dist/ hierarchy

clean: luaclean
# Commands to clean your compiled objects

src ?

The src directory is reserved for C sourcecode.
luasrc ?

luasrc contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are

installed in the LuCI installation directory.
lua ?

lua is equivalent to luasrc but containing Lua files will be installed in the Lua document root.
htdocs ?

All files under htdocs will be copied to the document root of the target webserver.
root ?

All directories and files under root will be copied to the installation target as they are.
dist ?

dist is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine. DO NOT

put any files there as they will get deleted.
ipkg ?

ipkg contains IPKG package control files, like preinst, posinst, prerm, postrm. conffiles. See IPKG documentation for details.
OpenWRT feed integration ?

If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the contrib/package/luci/Makefile.

For a Web UI applications this is:

A package description:

define Package/luci-app-YOURMODULE
$(call Package/luci/webtemplate)
DEPENDS+=+some-package +some-other-package
TITLE:=SHORT DESCRIPTION OF YOURMODULE
endef

A package installation target:

define Package/luci-app-YOURMODULE/install
$(call Package/luci/install/template,$(1),applications/YOURMODULE)
endef

A module build instruction:

ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),)
PKG_SELECTED_MODULES+=applications/YOURMODULE
endif

A build package call:

$(eval $(call BuildPackage,luci-app-YOURMODULE))

depends on libpcap
/usr/bin/zruijie
/etc/init.d/zruijie4gzhu
/etc/config/zruijie.conf

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注