summaryrefslogtreecommitdiffstats
path: root/skripti/ž
blob: d18de363af2cea733146744753091b15db9e5a7e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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