diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2014-12-03 15:17:05 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2015-01-08 16:26:20 +0100 |
commit | 1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch) | |
tree | 35e16f100466e4e00657199b38bb3d87d52bf73f /applications/luci-app-shairplay | |
parent | 9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff) |
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names
* Make each LuCI module its own standalone package
* Deploy a shared luci.mk which is used by each module Makefile
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'applications/luci-app-shairplay')
4 files changed, 127 insertions, 0 deletions
diff --git a/applications/luci-app-shairplay/Makefile b/applications/luci-app-shairplay/Makefile new file mode 100644 index 000000000..dcc061178 --- /dev/null +++ b/applications/luci-app-shairplay/Makefile @@ -0,0 +1,14 @@ +# +# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org> +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Support for Shairplay +LUCI_DEPENDS:=+shairplay + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-shairplay/luasrc/controller/shairplay.lua b/applications/luci-app-shairplay/luasrc/controller/shairplay.lua new file mode 100644 index 000000000..3a2c2ea1b --- /dev/null +++ b/applications/luci-app-shairplay/luasrc/controller/shairplay.lua @@ -0,0 +1,25 @@ +--[[ +LuCI - Lua Configuration Interface - Shairplay support + +Copyright 2014 Álvaro Fernández Rojas <noltari@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- + +module("luci.controller.shairplay", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/shairplay") then + return + end + + local page = entry({"admin", "services", "shairplay"}, cbi("shairplay"), _("Shairplay")) + page.dependent = true + +end diff --git a/applications/luci-app-shairplay/luasrc/model/cbi/shairplay.lua b/applications/luci-app-shairplay/luasrc/model/cbi/shairplay.lua new file mode 100644 index 000000000..e957ce697 --- /dev/null +++ b/applications/luci-app-shairplay/luasrc/model/cbi/shairplay.lua @@ -0,0 +1,76 @@ +--[[ +LuCI - Lua Configuration Interface - Shairplay support + +Copyright 2014 Álvaro Fernández Rojas <noltari@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- + +m = Map("shairplay", "Shairplay", translate("Shairplay is a simple AirPlay server implementation, here you can configure the settings.")) + +s = m:section(TypedSection, "shairplay", "") +s.addremove = true +s.anonymous = false + +enable=s:option(Flag, "disabled", translate("Enabled")) +enable.enabled="0" +enable.disabled="1" +enable.default = "1" +enable.rmempty = false +respawn=s:option(Flag, "respawn", translate("Respawn")) +respawn.default = false + +apname = s:option(Value, "apname", translate("Airport Name")) +apname.rmempty = true + +port=s:option(Value, "port", translate("Port")) +port.rmempty = true +port.datatype = "port" + +pw = s:option(Value, "password", translate("Password")) +pw.rmempty = true +pw.password = true + +hwaddr=s:option(Value, "hwaddr", translate("HW Address")) +hwaddr.rmempty = true +hwaddr.datatype = "macaddr" + +ao_driver=s:option(ListValue, "ao_driver", translate("AO Driver")) +ao_driver:value("", translate("Default")) +ao_driver:value("alsa") +--ao_driver:value("alsa05") +--ao_driver:value("arts") +--ao_driver:value("esd") +--ao_driver:value("irix") +--ao_driver:value("nas") +ao_driver:value("oss") +--ao_driver:value("sun") + +ao_devicename=s:option(Value, "ao_devicename", translate("AO Device Name")) +ao_devicename.rmempty = true + +ao_deviceid = s:option(ListValue, "ao_deviceid", translate("AO Device ID")) +ao_deviceid.rmempty = true +ao_deviceid:value("", translate("Default")) +local pats = io.popen("find /proc/asound/ -type d -name 'card*' | sort") +if pats then + local l + while true do + l = pats:read("*l") + if not l then break end + + l = string.gsub(l, "/proc/asound/card", "") + if l then + ao_deviceid:value(l) + end + end + pats:close() +end + +return m diff --git a/applications/luci-app-shairplay/root/etc/uci-defaults/luci-shairplay b/applications/luci-app-shairplay/root/etc/uci-defaults/luci-shairplay new file mode 100644 index 000000000..efc8a89bb --- /dev/null +++ b/applications/luci-app-shairplay/root/etc/uci-defaults/luci-shairplay @@ -0,0 +1,12 @@ +#!/bin/sh + +# needed for "Save and Apply" to restart shairplay +uci -q batch <<-EOF >/dev/null + delete ucitrack.@shairplay[-1] + add ucitrack shairplay + set ucitrack.@shairplay[-1].init="shairplay" + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 |