owfs: Add init scripts and config files

Owfs daemons lack control scripts. This patch adds init.d scripts for owfs,
owserver, owhttpd and owftpd packages.
Most daemon options (both common libow and program-specific parameters)
are reflected as uci config variables.

Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>
This commit is contained in:
Marcin Jurkowski 2013-03-06 09:30:36 +00:00
parent 7d12c8be58
commit 7000746a30
9 changed files with 358 additions and 0 deletions

View File

@ -198,6 +198,15 @@ endef
define Package/owfs/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owfs $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/owfs.conf $(1)/etc/config/owfs
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/owfs.init $(1)/etc/init.d/owfs
mkdir -p $(1)/mnt/owfs
endef
define Package/owfs/conffiles
/etc/config/owfs
endef
define Package/owshell/install
@ -213,18 +222,41 @@ endef
define Package/owserver/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owserver $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/owserver.conf $(1)/etc/config/owserver
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/owserver.init $(1)/etc/init.d/owserver
endef
define Package/owserver/conffiles
/etc/config/owserver
endef
define Package/owhttpd/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owhttpd $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/owhttpd.conf $(1)/etc/config/owhttpd
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/owhttpd.init $(1)/etc/init.d/owhttpd
endef
define Package/owhttpd/conffiles
/etc/config/owhttpd
endef
define Package/owftpd/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owftpd $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/owftpd.conf $(1)/etc/config/owftpd
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/owftpd.init $(1)/etc/init.d/owftpd
endef
define Package/owftpd/conffiles
/etc/config/owftpd
endef
define Package/libow/install
$(INSTALL_DIR) $(1)/usr/lib

View File

@ -0,0 +1,11 @@
config owfs 'owfs'
option enabled 0
option uid 0
option gid 0
option readonly 0
option mountpoint '/mnt/owfs'
option fuse_allow_other 0
option fuse_open_opt ''
option error_level 0
option options ''
list devices '-s localhost:4304'

View File

@ -0,0 +1,75 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2012 OpenWrt.org
START=99
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
# Workaround insufficient /dev/fuse permissions and the lack of /etc/fuse.conf
DEFAULT_SERVICE_UID=0
DEFAULT_SERVICE_GID=0
append_device() {
append devices "$1"
}
start_owfs_daemon() {
local program="$1"
local config="$1"
local args="--foreground --error_print=1 $2"
local enabled
config_get_bool enabled "$config" enabled 0
[ "${enabled}" -eq 0 ] && return 1
local readonly
config_get_bool readonly "$config" readonly 0
[ "${readonly}" -eq 1 ] && append args "--readonly"
local error_level
config_get error_level "$config" error_level
[ -n "${error_level}" ] && append args "--error_level=${error_level}"
local options
config_get options "$config" options
devices=""
config_list_foreach "$config" devices append_device
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID"
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID"
service_start "/usr/bin/$program" $args $options $devices
}
start_owfs() {
local config="owfs"
local args=""
config_load "$config"
local mountpoint
config_get mountpoint "$config" mountpoint /mnt/owfs
append args "--mountpoint=${mountpoint}"
local fuse_allow_other
config_get_bool fuse_allow_other "$config" fuse_allow_other 0
[ "${fuse_allow_other}" -eq 1 ] && append args "--allow_other"
local fuse_open_opt
config_get fuse_open_opt "$config" fuse_open_opt
[ -n "${fuse_open_opt}" ] && append args "--fuse_open_opt=\"${fuse_open_opt}\""
start_owfs_daemon "$config" "$args"
}
start() {
start_owfs
}
stop() {
service_stop /usr/bin/owfs
}

View File

@ -0,0 +1,9 @@
config owftpd 'owftpd'
option enabled 0
option uid 0
option gid 0
option readonly 0
option port 21
option error_level 0
option options ''
list devices '-s localhost:4304'

View File

@ -0,0 +1,72 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2012 OpenWrt.org
START=99
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
# Needed for restricted TCP port 21
DEFAULT_SERVICE_UID=0
DEFAULT_SERVICE_GID=0
append_device() {
append devices "$1"
}
start_owfs_daemon() {
local program="$1"
local config="$1"
local args="--foreground --error_print=1 $2"
local enabled
config_get_bool enabled "$config" enabled 0
[ "${enabled}" -eq 0 ] && return 1
local readonly
config_get_bool readonly "$config" readonly 0
[ "${readonly}" -eq 1 ] && append args "--readonly"
local error_level
config_get error_level "$config" error_level
[ -n "${error_level}" ] && append args "--error_level=${error_level}"
local options
config_get options "$config" options
devices=""
config_list_foreach "$config" devices append_device
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID"
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID"
service_start "/usr/bin/$program" $args $options $devices
}
start_owftpd() {
local config="owftpd"
local args=""
config_load "$config"
local port
config_get port "$config" port
[ -n "${port}" ] && append args "--port=${port}"
local max_connections
config_get max_connections "$config" max_connections
[ -n "${max_connections}" ] && append args "--max_connections=${max_connections}"
start_owfs_daemon "$config" "$args"
}
start() {
start_owftpd
}
stop() {
service_stop /usr/bin/owftpd
}

View File

@ -0,0 +1,9 @@
config owhttpd 'owhttpd'
option enabled 0
option uid 65534
option gid 65534
option readonly 0
option port 3001
option error_level 0
option options ''
list devices '-s localhost:4304'

View File

@ -0,0 +1,71 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2012 OpenWrt.org
START=99
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
DEFAULT_SERVICE_UID=65534
DEFAULT_SERVICE_GID=65534
append_device() {
append devices "$1"
}
start_owfs_daemon() {
local program="$1"
local config="$1"
local args="--foreground --error_print=1 $2"
local enabled
config_get_bool enabled "$config" enabled 0
[ "${enabled}" -eq 0 ] && return 1
local readonly
config_get_bool readonly "$config" readonly 0
[ "${readonly}" -eq 1 ] && append args "--readonly"
local error_level
config_get error_level "$config" error_level
[ -n "${error_level}" ] && append args "--error_level=${error_level}"
local options
config_get options "$config" options
devices=""
config_list_foreach "$config" devices append_device
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID"
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID"
service_start "/usr/bin/$program" $args $options $devices
}
start_owhttpd() {
local config="owhttpd"
local args=""
config_load "$config"
local port
config_get port "$config" port
[ -n "${port}" ] && append args "--port=${port}"
local max_connections
config_get max_connections "$config" max_connections
[ -n "${max_connections}" ] && append args "--max_connections=${max_connections}"
start_owfs_daemon "$config" "$args"
}
start() {
start_owhttpd
}
stop() {
service_stop /usr/bin/owhttpd
}

View File

@ -0,0 +1,9 @@
config owserver 'owserver'
option enabled 0
option uid 65534
option gid 65534
option readonly 0
option port 4304
option error_level 0
option options ''
list devices '-d /dev/ttyUSB0'

View File

@ -0,0 +1,70 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2012 OpenWrt.org
START=98
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
DEFAULT_SERVICE_UID=65534
DEFAULT_SERVICE_GID=65534
append_device() {
append devices "$1"
}
start_owfs_daemon() {
local program="$1"
local config="$1"
local args="--foreground --error_print=1 $2"
local enabled
config_get_bool enabled "$config" enabled 0
[ "${enabled}" -eq 0 ] && return 1
local readonly
config_get_bool readonly "$config" readonly 0
[ "${readonly}" -eq 1 ] && append args "--readonly"
local error_level
config_get error_level "$config" error_level
[ -n "${error_level}" ] && append args "--error_level=${error_level}"
local options
config_get options "$config" options
devices=""
config_list_foreach "$config" devices append_device
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID"
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID"
service_start "/usr/bin/$program" $args $options $devices
}
start_owserver() {
local config="owserver"
local args=""
config_load "$config"
local port
config_get port "$config" port
[ -n "${port}" ] && append args "--port=${port}"
local max_connections
config_get max_connections "$config" max_connections
[ -n "${max_connections}" ] && append args "--max_connections=${max_connections}"
start_owfs_daemon "$config" "$args"
}
start() {
start_owserver
}
stop() {
service_stop /usr/bin/owserver
}