9 prefixes_of_net_interfaces_to_show
="$4"
11 | stdbuf
-o L
"$dir_bin"/khatus_controller \
12 -v opt_debug
="$debug" \
13 -v opt_mpd_song_max_chars
=10 \
14 -v opt_prefixes_of_net_interfaces_to_show
="$prefixes_of_net_interfaces_to_show"
24 "$dir_bin"/$cmd |
while read line
; do
25 echo "${msg_head} $line" > "$pipe"
36 weather_station_id
='KJFK'
37 screen_brightness_device_name
='acpi_video0'
38 prefixes_of_net_interfaces_to_show
='w' # comma-separated
42 fan_path
='/proc/acpi/ibm/fan'
44 interval_inp_datetime
=1
45 interval_inp_brightness
=1
46 interval_inp_weather
=$
(( 30 * 60)) # 30 minutes
47 interval_inp_mpd_state
=1
48 interval_inp_mpd_song
=1
50 interval_inp_bluetooth
=5
51 interval_inp_net_wifi
=5
53 interval_inp_disk_space
=5
54 interval_inp_disk_io
=1
55 interval_inp_loadavg
=1
64 long_options
+=',bin_dir:'
65 long_options
+=',data_dir:'
66 long_options
+=',weather_station:'
67 long_options
+=',screen_device:'
68 long_options
+=',prefixes_of_net_interfaces_to_show:'
69 long_options
+=',disk_space_device:'
70 long_options
+=',disk_io_device:'
71 long_options
+=',thermal_zone:'
72 long_options
+=',fan_path:'
73 long_options
+=',interval_inp_datetime:'
74 long_options
+=',interval_inp_brightness:'
75 long_options
+=',interval_inp_weather:'
76 long_options
+=',interval_inp_mpd_state:'
77 long_options
+=',interval_inp_mpd_song:'
78 long_options
+=',interval_inp_volume:'
79 long_options
+=',interval_inp_bluetooth:'
80 long_options
+=',interval_inp_net_wifi:'
81 long_options
+=',interval_inp_net_io:'
82 long_options
+=',interval_inp_disk_space:'
83 long_options
+=',interval_inp_disk_io:'
84 long_options
+=',interval_inp_loadavg:'
85 long_options
+=',interval_inp_temp:'
86 long_options
+=',interval_inp_fan:'
87 long_options
+=',interval_inp_mem:'
88 long_options
+=',interval_inp_energy:'
112 weather_station_id
="$2"
116 screen_brightness_device_name
="$2"
119 --prefixes_of_net_interfaces_to_show)
120 prefixes_of_net_interfaces_to_show
="$2"
124 disk_space_device
="$2"
139 --interval_inp_datetime)
140 interval_inp_datetime
="$2"
143 --interval_inp_brightness)
144 interval_inp_brightness
="$2"
147 --interval_inp_weather)
148 interval_inp_weather
="$2"
151 --interval_inp_mpd_state)
152 interval_inp_mpd_state
="$2"
155 --interval_inp_mpd_song)
156 interval_inp_mpd_song
="$2"
159 --interval_inp_volume)
160 interval_inp_volume
="$2"
163 --interval_inp_bluetooth)
164 interval_inp_bluetooth
="$2"
167 --interval_inp_net_wifi)
168 interval_inp_net_wifi
="$2"
171 --interval_inp_net_io)
172 interval_inp_net_io
="$2"
175 --interval_inp_disk_space)
176 interval_inp_disk_space
="$2"
179 --interval_inp_disk_io)
180 interval_inp_disk_io
="$2"
183 --interval_inp_loadavg)
184 interval_inp_loadavg
="$2"
188 interval_inp_temp
="$2"
192 interval_inp_fan
="$2"
196 interval_inp_mem
="$2"
199 --interval_inp_energy)
200 interval_inp_energy
="$2"
210 pipe
="$dir_data/khatus_data_pipe"
211 screen_brightness_device_path
='/sys/class/backlight'
212 screen_brightness_device_path
+="/$screen_brightness_device_name"
214 ( echo "Khatus starting with the following parameters:"
215 ( echo " debug|= $debug"
216 echo " dir_bin|= $dir_bin"
217 echo " dir_data|= $dir_data"
219 echo " screen_brightness_device_name|= $screen_brightness_device_name"
220 echo " screen_brightness_device_path|= $screen_brightness_device_path"
221 echo " weather_station_id|= $weather_station_id"
222 echo " prefixes_of_net_interfaces_to_show|= $prefixes_of_net_interfaces_to_show"
223 echo " disk_space_device|= $disk_space_device"
224 echo " disk_io_device|= $disk_io_device"
225 echo " thermal_zone|= $thermal_zone"
226 echo " fan_path|= $fan_path"
235 cmd_sens_screen_brightness
='khatus_sensor_screen_brightness'
236 cmd_sens_screen_brightness
+=" $screen_brightness_device_path"
238 cmd_sens_weather
="khatus_sensor_weather $weather_station_id"
240 cmd_sens_disk_space
="khatus_sensor_disk_space $disk_space_device"
242 cmd_sens_disk_io
="khatus_sensor_disk_io $disk_io_device"
244 cmd_sens_temperature
="khatus_sensor_temperature $thermal_zone"
246 cmd_sens_fan
="khatus_sensor_fan $fan_path"
248 # TODO: Redirect each worker's stderr to a dedicated log file
249 spawn
"$pipe" "$dir_bin" khatus_sensor_datetime
'in:DATE_TIME' $interval_inp_datetime
250 spawn
"$pipe" "$dir_bin" "$cmd_sens_screen_brightness" 'in:SCREEN_BRIGHTNESS' $interval_inp_brightness
251 spawn
"$pipe" "$dir_bin" "$cmd_sens_weather" 'in:WEATHER' $interval_inp_weather
252 spawn
"$pipe" "$dir_bin" khatus_sensor_mpd_state
'in:MPD_STATE' $interval_inp_mpd_state
253 spawn
"$pipe" "$dir_bin" khatus_sensor_mpd_song
'in:MPD_SONG' $interval_inp_mpd_song
254 spawn
"$pipe" "$dir_bin" khatus_sensor_volume
'in:VOLUME' $interval_inp_volume
255 spawn
"$pipe" "$dir_bin" khatus_sensor_bluetooth_power
'in:BLUETOOTH_POWER' $interval_inp_bluetooth
256 spawn
"$pipe" "$dir_bin" khatus_sensor_net_wifi_status
'in:NET_WIFI_STATUS' $interval_inp_net_wifi
257 spawn
"$pipe" "$dir_bin" khatus_sensor_net_addr_io
'in:NET_ADDR_IO' $interval_inp_net_io
258 spawn
"$pipe" "$dir_bin" "$cmd_sens_disk_space" 'in:DISK_SPACE' $interval_inp_disk_space
259 spawn
"$pipe" "$dir_bin" "$cmd_sens_disk_io" 'in:DISK_IO' $interval_inp_disk_io
260 spawn
"$pipe" "$dir_bin" khatus_sensor_loadavg
'in:LOAD_AVG' $interval_inp_loadavg
261 spawn
"$pipe" "$dir_bin" "$cmd_sens_temperature" 'in:TEMPERATURE' $interval_inp_temp
262 spawn
"$pipe" "$dir_bin" "$cmd_sens_fan" 'in:FAN' $interval_inp_fan
263 spawn
"$pipe" "$dir_bin" khatus_sensor_memory
'in:MEMORY' $interval_inp_mem
264 spawn
"$pipe" "$dir_bin" khatus_sensor_energy
'in:ENERGY' $interval_inp_energy
270 "$prefixes_of_net_interfaces_to_show"