2022-06-30 22:20:25 +02:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
# NBMrec
|
|
|
|
|
# nocturnal bird migration recorder daemon
|
|
|
|
|
# by Samuel ORTION
|
|
|
|
|
|
|
|
|
|
RECORD_DIR="/mnt/DATA/media/records"
|
|
|
|
|
RECORD_DATE=$(date +"%Y-%m-%d")
|
2022-07-01 07:26:09 +02:00
|
|
|
|
PREFIX="nbmrec"
|
|
|
|
|
RECORD_FILENAME="${PREFIX}_$(date +"%Y%m%d_%H%M%S").wav"
|
|
|
|
|
RECORD_FILEPATH="${RECORD_DIR}/${RECORD_DATE}/${RECORD_FILENAME}"
|
|
|
|
|
START_TIME="22:00"
|
|
|
|
|
END_TIME="06:00"
|
|
|
|
|
RECORD_DURATION=$(( $(date -d "$END_TIME + 1 day" "+%s") - $(date -d "$START_TIME" "+%s") ))
|
|
|
|
|
VERBOSE=false
|
|
|
|
|
|
|
|
|
|
# Load conf file if any
|
|
|
|
|
if [ -f /usr/local/etc/nbmrec/nbmrec.conf ]; then
|
|
|
|
|
source /usr/local/etc/nbmrec.conf
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
RECORD_DURATION=$(( $(date -d "$END_TIME + 1 day" "+%s") - $(date -d "$START_TIME" "+%s") ))
|
2022-06-30 22:20:25 +02:00
|
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
|
echo "Usage: $0 [ -d <duration> ] [ -f <filename> ]"
|
|
|
|
|
echo " -d <duration> : duration of the recording in seconds or 'night' for all night recording"
|
|
|
|
|
echo " -f <filename> : filename of the recording"
|
|
|
|
|
echo " -h : display this help"
|
2022-07-01 07:26:09 +02:00
|
|
|
|
echo " -v : switch to VERBOSE mode"
|
2022-06-30 22:20:25 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Get command line options
|
|
|
|
|
while getopts ":hd:f:" opt; do
|
|
|
|
|
case $opt in
|
|
|
|
|
h)
|
|
|
|
|
usage
|
|
|
|
|
;;
|
|
|
|
|
d)
|
|
|
|
|
RECORD_DURATION=$OPTARG
|
|
|
|
|
if [ "$RECORD_DURATION" == "night" ]; then
|
|
|
|
|
RECORD_DURATION=32400
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
f)
|
|
|
|
|
RECORD_FILEPATH=$OPTARG
|
|
|
|
|
;;
|
|
|
|
|
\?)
|
|
|
|
|
echo "Invalid option: -$OPTARG" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
;;
|
|
|
|
|
:)
|
|
|
|
|
echo "Option -$OPTARG requires an argument." >&2
|
|
|
|
|
exit 1
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
main() {
|
|
|
|
|
# Create output folder
|
2022-07-01 07:26:09 +02:00
|
|
|
|
if $VERBOSE
|
2022-06-30 22:20:25 +02:00
|
|
|
|
then
|
|
|
|
|
echo "Creating record output folder"
|
|
|
|
|
fi
|
|
|
|
|
mkdir -p "$RECORD_DIR/$RECORD_DATE/"
|
|
|
|
|
|
|
|
|
|
# Perform recording
|
2022-07-01 07:26:09 +02:00
|
|
|
|
if $VERBOSE
|
2022-06-30 22:20:25 +02:00
|
|
|
|
then
|
|
|
|
|
echo "Recording $RECORD_FILENAME"
|
|
|
|
|
fi
|
|
|
|
|
rec -b 16 -r 48000 -c 1 -t wav $RECORD_FILEPATH trim 0 $RECORD_DURATION
|
|
|
|
|
|
2022-07-01 07:26:09 +02:00
|
|
|
|
if $VERBOSE
|
2022-06-30 22:20:25 +02:00
|
|
|
|
then
|
|
|
|
|
echo "Done"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main
|
|
|
|
|
exit 0
|