#!/bin/bash # $1 naj bo icecast host kruljo.radiostudent.si # $2 naj bo icecast http port 8000 # $3 naj bo icecast endpoint /ehiq # $4 naj bo končnica datotek .mp3 # v CWD delam imenike in datoteke in sem glede tega kompatibilen z earhornom: # Posnetek 2024/06/03/202136.mp3 se začne 2024-06-03T20:21:36 vedno UTC. # Posnetkov ne splittam na uro. Posnetek se splitta le takrat, ko se zgodi napaka (stream crkne) -- takrat začnem pisati v novo datoteko # požvižgam se na vsebino datotek. zame so to le bajti. v tem nisem earhornski. host=$1 port=$2 endpoint=$3 kon=$4 mistakes=0 set -xeuo pipefail while : do filename=`date --utc +%Y/%m/%d/%H%m%S$kon` mkdir -p `cut -d/ -f1-3 <<<$filename` start=$SECONDS set +e nc $host $port <<<"GET $endpoint HTTP/1.0"$'\r\n\r' > $filename koda=$? set -e echo TCP PREKINJEN! ZAČENJAM NOV POSNETEK! IZHODNA KODA nc je $koda, datum je `date` if [ $(($SECONDS-$start)) -lt 300 ] then mistakes=$(($mistakes+1)) if [ $mistakes -gt 3 ] then sleep $((2**($mistakes-3))) fi else mistakes=0 fi done