diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfdb8b7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.sh text eol=lf diff --git a/README.md b/README.md index 5eb8ec0..54df121 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ nano jobs/mein-stream.job | `MAX_DURATION` | Nein | Aufnahmedauer in Sekunden (wird bei Zeitplanung automatisch aus Endzeit oder Laufzeit berechnet) | | `EXTRA_FFMPEG_ARGS`| Nein | Zusätzliche ffmpeg-Parameter | | `PLIK_ENABLED` | Nein | Plik-Upload aktivieren (`true`/`false`) | +| `DELETE_AFTER_UPLOAD` | Nein | Lokale Datei nach erfolgreichem Upload löschen (`true`/`false`) | ### Zeitplan-Parameter diff --git a/stream-recorder.sh b/stream-recorder.sh index 23f1589..634f8c5 100644 --- a/stream-recorder.sh +++ b/stream-recorder.sh @@ -8,15 +8,15 @@ # Web: https://www.cleveradmin.de # Repository: https://git.techniverse.net/scriptos/stream-recorder.git # License: MIT -# Version: v2.5.0 +# Version: v2.6.0 # Date: 06.09.2026 -# Modifications: Zeitplanung vereinfacht: Endzeit oder Laufzeit statt separater Max-Dauer +# Modifications: optionale Dateilöschung nach Upload ############################################### set -uo pipefail readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -readonly VERSION="2.5.0" +readonly VERSION="2.6.0" # --- Standardwerte (überschreibbar via Konfiguration) --- CONFIG_FILE="${SCRIPT_DIR}/config/stream-recorder.conf" @@ -197,6 +197,11 @@ upload_to_plik() { fi notify "upload" "Plik-Upload" "${stream_name}: ${browser_url}" + if [[ "${DELETE_AFTER_UPLOAD:-false}" == "true" ]]; then + rm -f "$file" + log "INFO" "Lokale Datei gelöscht: ${file}" + fi + echo "$browser_url" } @@ -353,6 +358,7 @@ load_job() { SCHEDULE_START="" SCHEDULE_STOP="" PLIK_ENABLED="false" + DELETE_AFTER_UPLOAD="false" if [[ ! -f "$job_file" ]]; then log "ERROR" "Job-Datei nicht gefunden: ${job_file}" @@ -554,12 +560,18 @@ record_stream() { if [[ $ret -eq 143 || $ret -eq 130 ]]; then log "INFO" "Aufnahme gestoppt: ${STREAM_NAME}" notify "stop" "Aufnahme gestoppt" "${STREAM_NAME} wurde gestoppt" + if [[ -s "$output_file" ]]; then + upload_to_plik "$output_file" "$STREAM_NAME" + fi break fi if [[ ! -f "$pid_file" ]]; then log "INFO" "Aufnahme gestoppt: ${STREAM_NAME}" notify "stop" "Aufnahme gestoppt" "${STREAM_NAME} wurde gestoppt" + if [[ -s "$output_file" ]]; then + upload_to_plik "$output_file" "$STREAM_NAME" + fi break fi @@ -898,9 +910,14 @@ create_job() { echo "" echo "--- Plik-Upload (optional) ---" local plik_enabled="false" + local delete_after_upload="false" if [[ -n "${PLIK_URL:-}" ]]; then read -rp "Plik-Upload aktivieren? [j/N] " plik_input - [[ "$plik_input" =~ ^[JjYy]$ ]] && plik_enabled="true" + if [[ "$plik_input" =~ ^[JjYy]$ ]]; then + plik_enabled="true" + read -rp "Lokale Datei nach Upload löschen? [j/N] " delete_input + [[ "$delete_input" =~ ^[JjYy]$ ]] && delete_after_upload="true" + fi else echo " (Übersprungen - PLIK_URL nicht konfiguriert)" fi @@ -940,7 +957,11 @@ create_job() { else echo " Zeitplan: deaktiviert" fi - echo " Plik: ${plik_enabled}" + if [[ "$plik_enabled" == "true" && "$delete_after_upload" == "true" ]]; then + echo " Plik: ${plik_enabled} (nach Upload löschen)" + else + echo " Plik: ${plik_enabled}" + fi echo "" read -rp "Job erstellen? [J/n] " confirm if [[ "$confirm" =~ ^[Nn]$ ]]; then @@ -976,6 +997,7 @@ SCHEDULE_STOP="${sched_stop}" ############################################### PLIK_ENABLED=${plik_enabled} +DELETE_AFTER_UPLOAD=${delete_after_upload} JOBEOF echo ""