AtOM/lib/config/getGeneral

99 lines
2.1 KiB
Bash

#!/bin/bash
getConfigGeneral() {
case $key in
'max-load')
# Target system 1-minute load average
# concurrency is adjusted to stay near this
expr='^[0-9]*$'
if [[ $value =~ $expr ]]
then
maxload="$value"
else
echo "Invalid max-load value: $value" >&2
exit $ELOAD
fi
unset expr
;;
'load-interval')
# How often (seconds) to adjust worker count
expr='^[0-9]*$'
if [[ $value =~ $expr ]]
then
loadinterval="$value"
else
echo "Invalid load-interval value: $value" >&2
exit $EINTERVAL
fi
unset expr
;;
'ionice')
if which ionice >/dev/null
then
read class niceness <<<"$value"
case $class in
1)
# real-time class, only root can do that
if (( UID ))
then
echo "IO class 'realtime' is"\
"not available to unprivileged"\
"users" >&2
exit $EIONICE
fi
if [ -n "$niceness" ] \
&& (( niceness >= 0 && niceness <= 7 ))
then
ionice="ionice -c1 -n$niceness "
else
echo "Invalid IO priority"\
"'$niceness'" >&2
exit $EIONICE
fi
;;
2)
# Best-effort class; niceness 0 (highest) to 7 (lowest)
if [ -n "$niceness" ] \
&& (( niceness >= 0 && niceness <= 7 ))
then
ionice="ionice -c2 -n$niceness "
else
echo "Invalid IO priority"\
"'$niceness'" >&2
exit $EIONICE
fi
;;
3)
# Idle class: only gets I/O when no other process needs it
ionice="ionice -c3 "
;;
*)
echo "Invalid ionice class $value"\
>&2
exit $EIONICE
;;
esac
fi
;;
'temporary-directory')
# Directory for
# * SQLite FIFOs
# * intermediate WAV files
# * debug logs
tempdir="$value"
;;
'database')
# Path to the SQLite database file
database="$value"
;;
'skip-timestamp-microsec')
# If non-zero, ignore sub-second precision in file timestamps
# Useful on filesystems that don't preserve microseconds
skip_us_timestamp="$value"
;;
debug)
# Allow config file to raise debug level (but not lower it)
(( value > debug )) && debug=$value
;;
esac
}