From 6108a065e8008f147b799a2294ffb2f0bd349f5b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Mon, 2 Apr 2018 12:54:24 +0100 Subject: [PATCH] peertube sync lock file --- src/freedombone-app-peertube | 40 +++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/freedombone-app-peertube b/src/freedombone-app-peertube index 9d32999c..55f083ee 100755 --- a/src/freedombone-app-peertube +++ b/src/freedombone-app-peertube @@ -64,6 +64,17 @@ function peertube_import_from_syncthing { fi { echo '#!/bin/bash'; + echo ''; + echo 'if [ -f /root/.peertube.lock ]; then'; + echo " lockctr=\$(cat /root/.peertube.lock)"; + echo " lockctr=\$((lockctr+1))"; + echo " echo \"\$lockctr\" > /root/.peertube.lock"; + echo " if [ \$lockctr -ge 30 ]; then"; + echo " rm /root/.peertube.lock"; + echo ' else'; + echo ' exit 0'; + echo ' fi'; + echo 'fi'; echo ''; echo "MY_USERNAME=\$(cat /root/${PROJECT_NAME}.cfg | grep MY_USERNAME | awk -F '=' '{print \$2}')"; echo "if [ ! \"\$MY_USERNAME\" ]; then"; @@ -100,33 +111,28 @@ function peertube_import_from_syncthing { echo ''; echo 'failed_uploads=0'; echo ''; + echo 'echo "0" > /root/.peertube.lock'; + echo ''; echo "for video_file in \$search_dir/*; do"; echo " if [[ \"\$video_file\" == *'.ogv' || \"\$video_file\" == *'.mp4' || \"\$video_file\" == *'.webm' ]]; then"; echo " cd ${PEERTUBE_DIR} || exit 32468356"; echo " "; echo " if ! grep -q \"\$video_file\" /root/.peertube_uploaded; then"; - echo " if ! grep -q \"\$video_file\" /root/.peertube_uploading; then"; - echo " echo \"\$video_file\" >> /root/.peertube_uploading"; - echo " peertubetitle=\$(basename \"\$video_file\" | awk -F '.' '{print \$1}' | sed 's|_| |g' | sed 's|-| |g')"; - echo " if $nodecmd \$import_script -n \"\$peertubetitle\" \$peertubensfw \$peertubeprivate -u \"\$peertubedomain\" -U \"\$peertubeuser\" --password \"\$peertubepassword\" -f \"\$video_file\"; then"; - echo " echo \"\$video_file\" >> /root/.peertube_uploaded"; - echo " sed -i \"/\$(basename \$video_file)/d\" /root/.peertube_uploading"; - echo " exit 0"; - echo ' else'; - echo " sed -i \"/\$(basename \$video_file)/d\" /root/.peertube_uploading"; - echo " failed_uploads=\$((failed_uploads+1))"; - echo " if [ \$failed_uploads -gt 1 ]; then"; - echo ' exit 0'; - echo ' fi'; + echo " peertubetitle=\$(basename \"\$video_file\" | awk -F '.' '{print \$1}' | sed 's|_| |g' | sed 's|-| |g')"; + echo " if $nodecmd \$import_script -n \"\$peertubetitle\" \$peertubensfw \$peertubeprivate -u \"\$peertubedomain\" -U \"\$peertubeuser\" --password \"\$peertubepassword\" -f \"\$video_file\"; then"; + echo " echo \"\$video_file\" >> /root/.peertube_uploaded"; + echo " exit 0"; + echo ' else'; + echo " failed_uploads=\$((failed_uploads+1))"; + echo " if [ \$failed_uploads -gt 1 ]; then"; + echo ' exit 0'; echo ' fi'; echo ' fi'; - echo ' else'; - echo " if grep -q \"\$video_file\" /root/.peertube_uploading; then"; - echo " sed -i \"/\$(basename \$video_file)/d\" /root/.peertube_uploading"; - echo ' fi'; echo ' fi'; echo ' fi'; echo 'done'; } > /usr/bin/peertubesync + echo ''; + echo 'rm /root/.peertube.lock'; chmod +x /usr/bin/peertubesync cron_add_mins 1 /usr/bin/peertubesync