arecord parameter
This commit is contained in:
127
sumsel.sh
127
sumsel.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
VERSION="0.2"
|
||||
VERSION="0.3"
|
||||
|
||||
LOCK_DIR=/var/lock
|
||||
|
||||
@@ -41,6 +41,8 @@ usage() {
|
||||
}
|
||||
|
||||
mode=''
|
||||
lock_mode=''
|
||||
|
||||
while getopts ":hsrcC:v" options;
|
||||
do
|
||||
case "${options}" in
|
||||
@@ -70,23 +72,17 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
check_var_exists() {
|
||||
local var_name=$1
|
||||
|
||||
if [[ ! -v ${var_name} ]]; then
|
||||
echo "${var_name} not set"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
set_lockfile() {
|
||||
local BASENAME=$(basename "$0")
|
||||
local LOCK_FILE="${LOCK_DIR}/${BASENAME}"
|
||||
local RANDOM_FILE=$(mktemp --tmpdir=${LOCK_DIR})
|
||||
echo $$ > ${RANDOM_FILE}
|
||||
mv -n ${RANDOM_FILE} ${LOCK_FILE}
|
||||
local basename=$(basename "$0")
|
||||
if [ ! -z ${1+x} ]; then
|
||||
basename="${basename}_$1"
|
||||
fi
|
||||
local lock_file="${LOCK_DIR}/${basename}"
|
||||
local random_file=$(mktemp --tmpdir=${LOCK_DIR})
|
||||
echo $$ > ${random_file}
|
||||
mv -n ${random_file} ${lock_file}
|
||||
|
||||
if [ -e ${RANDOM_FILE} ]; then
|
||||
if [ -e ${random_file} ]; then
|
||||
false
|
||||
else
|
||||
true
|
||||
@@ -94,10 +90,32 @@ set_lockfile() {
|
||||
}
|
||||
|
||||
del_lockfile() {
|
||||
local BASENAME=$(basename "$0")
|
||||
local LOCK_FILE="${LOCK_DIR}/${BASENAME}"
|
||||
local basename=$(basename "$0")
|
||||
if [ ! -z ${1+x} ]; then
|
||||
basename="${basename}_$1"
|
||||
fi
|
||||
local lock_file="${LOCK_DIR}/${basename}"
|
||||
|
||||
rm ${LOCK_FILE}
|
||||
rm ${lock_file}
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
del_lockfile ${lock_mode}
|
||||
exit 1
|
||||
}
|
||||
|
||||
check_var_exists() {
|
||||
local var_name=$1
|
||||
|
||||
if [[ ! -v ${var_name} ]]; then
|
||||
echo "${var_name} not set"
|
||||
cleanup
|
||||
fi
|
||||
}
|
||||
|
||||
ctrl_c() {
|
||||
echo "** Trapped CTRL-C" 1>&2;
|
||||
cleanup
|
||||
}
|
||||
|
||||
simulate() {
|
||||
@@ -109,14 +127,15 @@ simulate() {
|
||||
local dst_fn=""
|
||||
|
||||
mkdir -p ${REC_DIR}
|
||||
echo "Press [CTRL+C] to stop.."
|
||||
echo "Press [CTRL+C] to stop.." 1>&2;
|
||||
trap ctrl_c INT
|
||||
while :
|
||||
do
|
||||
sleep 1
|
||||
counter=$[$counter +1]
|
||||
dst_fn="${REC_DIR}/${REC_PREFIX}-${counter}.wav"
|
||||
cp ${SIM_EXAMPLE_FILE} ${dst_fn}
|
||||
done
|
||||
do
|
||||
sleep ${REC_FILE_TIME}
|
||||
counter=$[$counter +1]
|
||||
dst_fn="${REC_DIR}/${REC_PREFIX}-${counter}.wav"
|
||||
cp ${SIM_EXAMPLE_FILE} ${dst_fn}
|
||||
done
|
||||
}
|
||||
|
||||
record() {
|
||||
@@ -126,6 +145,7 @@ record() {
|
||||
check_var_exists "REC_DIR"
|
||||
|
||||
mkdir -p ${REC_DIR}
|
||||
trap ctrl_c INT
|
||||
arecord --format=cd --device=${REC_DEVICE} --max-file-time=${REC_FILE_TIME} --use-strftime ${REC_DIR}/${REC_PREFIX}%Y%m%d%H%M%v.wav
|
||||
}
|
||||
|
||||
@@ -135,45 +155,48 @@ convert() {
|
||||
check_var_exists "UPL_SUFFIX"
|
||||
check_var_exists "REMOTE_DIR"
|
||||
|
||||
if set_lockfile; then
|
||||
mkdir -p ${REC_DIR}
|
||||
mkdir -p ${UPL_DIR}
|
||||
mkdir -p ${REC_DIR}
|
||||
mkdir -p ${UPL_DIR}
|
||||
|
||||
#Alle WAV Files ausser das letzte File.
|
||||
#Das letzte File wird gerade recorded und wird beim naechsten Durchlauf verarbeitet
|
||||
local FILES=$(ls -tr ${REC_DIR} |head -n -1)
|
||||
#Alle WAV Files ausser das letzte File.
|
||||
#Das letzte File wird gerade recorded und wird beim naechsten Durchlauf verarbeitet
|
||||
local FILES=$(ls -tr ${REC_DIR} |head -n -1)
|
||||
|
||||
for F in ${FILES}
|
||||
do
|
||||
#Ermittle ctime des WAV Files
|
||||
local CTIME=$(date -r "${REC_DIR}/${F}" +"%Y%m%d%H%M%S")
|
||||
ffmpeg -i "${REC_DIR}/${F}" -acodec mp3 "${UPL_DIR}/${CTIME}_${UPL_SUFFIX}.mp3"
|
||||
rm "${REC_DIR}/${F}"
|
||||
done
|
||||
for F in ${FILES}
|
||||
do
|
||||
#Ermittle ctime des WAV Files
|
||||
local CTIME=$(date -r "${REC_DIR}/${F}" +"%Y%m%d%H%M%S")
|
||||
ffmpeg -i "${REC_DIR}/${F}" -acodec mp3 "${UPL_DIR}/${CTIME}_${UPL_SUFFIX}.mp3"
|
||||
rm "${REC_DIR}/${F}"
|
||||
done
|
||||
|
||||
rsync -avzh --remove-source-files ${UPL_DIR} ${REMOTE_DIR}
|
||||
del_lockfile
|
||||
else
|
||||
echo "LOCK error"
|
||||
exit 1
|
||||
fi
|
||||
rsync -avzh --remove-source-files ${UPL_DIR} ${REMOTE_DIR}
|
||||
}
|
||||
|
||||
case ${mode} in
|
||||
s) #Simulation
|
||||
simulate
|
||||
exit 0
|
||||
lock_mode=record
|
||||
func=simulate
|
||||
;;
|
||||
r) #Aufnahme
|
||||
record
|
||||
exit 0
|
||||
lock_mode=record
|
||||
func=record
|
||||
;;
|
||||
c) #Konvertierung
|
||||
convert
|
||||
exit 0
|
||||
lock_mode=convert
|
||||
func=convert
|
||||
;;
|
||||
*)
|
||||
echo "mode not set"
|
||||
echo "mode not set" 1>&2;
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if set_lockfile ${lock_mode}; then
|
||||
${func}
|
||||
del_lockfile ${lock_mode}
|
||||
else
|
||||
echo "LOCK error" 1>&2;
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user