gom-sensor-ports 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/etc/gom-sensor-ports-debian-init-script +96 -0
- data/lib/gom-sensor-ports/sensor-ports.rb +25 -3
- metadata +4 -3
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.2
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
### BEGIN INIT INFO
|
|
3
|
+
# Provides: gom-sensor-ports
|
|
4
|
+
# Required-Start: $remote_fs $syslog
|
|
5
|
+
# Required-Stop: $remote_fs $syslog
|
|
6
|
+
# X-Start-Before: kdm gdm xdm
|
|
7
|
+
# X-Stop-After: kdm gdm xdm
|
|
8
|
+
# Default-Start: 2 3 4 5
|
|
9
|
+
# Default-Stop: 1
|
|
10
|
+
# Short-Description: Start the gom-sensor-ports daemon
|
|
11
|
+
# Description: running a gateway daemon to map simple TCP/UDP sensor values to GOM HTTP updates
|
|
12
|
+
### END INIT INFO
|
|
13
|
+
|
|
14
|
+
set -e
|
|
15
|
+
|
|
16
|
+
NAME=gom-sensor-ports
|
|
17
|
+
DESC="t-gallery gom-sensor-ports daemon"
|
|
18
|
+
GOM_NODE="http://gom.bonn.t-gallery/sensors/colours-and-materials/conducting-lacquer/"
|
|
19
|
+
LOGFILE="/var/log/colours-and-materials.log"
|
|
20
|
+
DAEMON_USER="webs"
|
|
21
|
+
DAEMON=$(which ${NAME})
|
|
22
|
+
VERBOSITY="--verbose"
|
|
23
|
+
|
|
24
|
+
PIDDIR=/var/run/colours-and-materials-gom-daemon
|
|
25
|
+
PIDFILE=$PIDDIR/pid
|
|
26
|
+
#VERBOSITY="--quiet"
|
|
27
|
+
PARAMS="--logfile=${LOGFILE} ${GOM_NODE}"
|
|
28
|
+
|
|
29
|
+
test -x $DAEMON || exit 0
|
|
30
|
+
|
|
31
|
+
# Get lsb functions
|
|
32
|
+
. /lib/lsb/init-functions
|
|
33
|
+
. /etc/default/rcS
|
|
34
|
+
|
|
35
|
+
start_it_up()
|
|
36
|
+
{
|
|
37
|
+
if [ ! -d $PIDDIR ]; then
|
|
38
|
+
mkdir -p $PIDDIR
|
|
39
|
+
chown $DAEMON_USER $PIDDIR
|
|
40
|
+
#chgrp $DAEMON_USER $PIDDIR
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
touch $LOGFILE
|
|
44
|
+
chown $DAEMON_USER $LOGFILE
|
|
45
|
+
|
|
46
|
+
if [ -e $PIDFILE ]; then
|
|
47
|
+
PIDDIR=/proc/$(cat $PIDFILE)
|
|
48
|
+
if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
|
|
49
|
+
log_success_msg "$DESC already started; not starting."
|
|
50
|
+
return
|
|
51
|
+
else
|
|
52
|
+
log_success_msg "Removing stale PID file $PIDFILE."
|
|
53
|
+
rm -f $PIDFILE
|
|
54
|
+
fi
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
log_daemon_msg "Starting $DESC" "$NAME"
|
|
58
|
+
/sbin/start-stop-daemon --start --background $VERBOSITY \
|
|
59
|
+
--make-pidfile --pidfile $PIDFILE \
|
|
60
|
+
-c $DAEMON_USER --exec $DAEMON -- $PARAMS
|
|
61
|
+
|
|
62
|
+
log_end_msg $?
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
shut_it_down()
|
|
67
|
+
{
|
|
68
|
+
log_daemon_msg "Stopping $DESC" "$NAME"
|
|
69
|
+
/sbin/start-stop-daemon $VERBOSITY --stop --retry 5 --oknodo \
|
|
70
|
+
--pidfile $PIDFILE --user $DAEMON_USER
|
|
71
|
+
# We no longer include these arguments so that start-stop-daemon
|
|
72
|
+
# can do its job even given that we may have been upgraded.
|
|
73
|
+
# We rely on the pidfile being sanely managed
|
|
74
|
+
log_end_msg $?
|
|
75
|
+
rm -f $PIDFILE
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
case "$1" in
|
|
79
|
+
start)
|
|
80
|
+
start_it_up
|
|
81
|
+
;;
|
|
82
|
+
stop)
|
|
83
|
+
shut_it_down
|
|
84
|
+
;;
|
|
85
|
+
restart)
|
|
86
|
+
shut_it_down
|
|
87
|
+
start_it_up
|
|
88
|
+
;;
|
|
89
|
+
status)
|
|
90
|
+
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
|
|
91
|
+
;;
|
|
92
|
+
*)
|
|
93
|
+
log_success_msg "Usage: /etc/init.d/${NAME} {start|stop|restart|status}"
|
|
94
|
+
exit 2
|
|
95
|
+
esac
|
|
96
|
+
|
|
@@ -2,18 +2,21 @@ module Gom
|
|
|
2
2
|
class SensorPorts < Gom::Remote::Entry
|
|
3
3
|
|
|
4
4
|
Defaults = {
|
|
5
|
+
:logfile => '-',
|
|
5
6
|
:interface => '0.0.0.0',
|
|
6
7
|
:sensor_port => 76001,
|
|
7
8
|
:mode => :udp,
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
include OAttr
|
|
11
|
-
oattr :interface, :sensor_port, :mode
|
|
12
|
+
oattr :logfile, :interface, :sensor_port, :mode
|
|
12
13
|
|
|
13
14
|
def initialize path, options = {}
|
|
14
15
|
@path = path
|
|
15
16
|
@options = Defaults.merge(gnode @path).merge(options)
|
|
16
17
|
puts " -- new sensor port: #{self.inspect}"
|
|
18
|
+
|
|
19
|
+
redirect_to logfile
|
|
17
20
|
end
|
|
18
21
|
|
|
19
22
|
def listen
|
|
@@ -25,8 +28,9 @@ module Gom
|
|
|
25
28
|
socket = UDPSocket.new
|
|
26
29
|
socket.bind(interface, sensor_port)
|
|
27
30
|
loop do
|
|
28
|
-
|
|
29
|
-
puts "-->#{
|
|
31
|
+
val, sender = socket.recvfrom(1024)
|
|
32
|
+
puts "-->#{val}<-- #{sender.inspect}"
|
|
33
|
+
connection.write "#{@path}:current_value", val.to_s
|
|
30
34
|
end
|
|
31
35
|
ensure
|
|
32
36
|
socket.close rescue nil
|
|
@@ -40,6 +44,24 @@ module Gom
|
|
|
40
44
|
#t.login(user, password) { |c| puts c }
|
|
41
45
|
"not implemented"
|
|
42
46
|
end
|
|
47
|
+
|
|
48
|
+
def redirect_to logfile
|
|
49
|
+
(@logfile_fd && @logfile_fd.close) rescue nil
|
|
50
|
+
puts " -- redirecting stdout/stderr to: #{logfile}"
|
|
51
|
+
if logfile == '-'
|
|
52
|
+
if @stdout
|
|
53
|
+
$stderr, $stdout = @stdout, @stderr
|
|
54
|
+
end
|
|
55
|
+
else
|
|
56
|
+
@stderr, @stdout = $stdout, $stderr
|
|
57
|
+
@logfile_fd = File.open(logfile, File::WRONLY|File::APPEND|File::CREAT)
|
|
58
|
+
@logfile_fd.sync = true
|
|
59
|
+
$stderr = $stdout = @logfile_fd
|
|
60
|
+
end
|
|
61
|
+
# first line after redirect
|
|
62
|
+
puts " -- daemon logile redirect at #{Time.now}"
|
|
63
|
+
end
|
|
64
|
+
|
|
43
65
|
end
|
|
44
66
|
end
|
|
45
67
|
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gom-sensor-ports
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 31
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 1
|
|
9
|
-
-
|
|
10
|
-
version: 0.1.
|
|
9
|
+
- 2
|
|
10
|
+
version: 0.1.2
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- art+com AG/dirk luesebrink
|
|
@@ -93,6 +93,7 @@ files:
|
|
|
93
93
|
- Rakefile
|
|
94
94
|
- VERSION
|
|
95
95
|
- bin/gom-sensor-ports
|
|
96
|
+
- etc/gom-sensor-ports-debian-init-script
|
|
96
97
|
- lib/gom-sensor-ports.rb
|
|
97
98
|
- lib/gom-sensor-ports/sensor-ports.rb
|
|
98
99
|
- spec/gom-sensor-ports/sensor-ports_spec.rb
|