From 5ed9bbf1fddeb5236c147e68dcee643116374dc9 Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 22 Nov 2024 16:10:38 -0500 Subject: [PATCH] upload-sorter init --- publish.sh | 17 +++++++++++++++++ upload-sorter/DOCKERFILE | 20 ++++++++++++++++++++ upload-sorter/requirements.txt | 1 + upload-sorter/sort.py | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100755 publish.sh create mode 100644 upload-sorter/DOCKERFILE create mode 100644 upload-sorter/requirements.txt create mode 100644 upload-sorter/sort.py diff --git a/publish.sh b/publish.sh new file mode 100755 index 0000000..3d30d27 --- /dev/null +++ b/publish.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +REGISTRY=code.balsillie.net +REPOSITORY=containers +IMAGE=$1 + +TAG1=$(date +%Y-%m-%d_%H-%M-%S) +TAG2=latest + +docker build \ + -t $REGISTRY/$REPOSITORY/$IMAGE:$TAG1 \ + -t $REGISTRY/$REPOSITORY/$IMAGE:$TAG2 \ + -f ./$IMAGE/DOCKERFILE \ + ./$IMAGE + +docker push $REGISTRY/$REPOSITORY/$IMAGE:$TAG1 +docker push $REGISTRY/$REPOSITORY/$IMAGE:$TAG2 diff --git a/upload-sorter/DOCKERFILE b/upload-sorter/DOCKERFILE new file mode 100644 index 0000000..613fde2 --- /dev/null +++ b/upload-sorter/DOCKERFILE @@ -0,0 +1,20 @@ +FROM python:3.12-slim + +# Set the working directory +WORKDIR /app + +# Copy the sort.py file to the working directory +COPY sort.py . +COPY requirements.txt . + +# Ensure pip +RUN python -m ensurepip + +# Upgrade pip +RUN pip install --upgrade pip + +# Install requirements +RUN pip install -r requirements.txt + +# Set the entry point to sort.py +ENTRYPOINT ["python", "/app/sort.py"] \ No newline at end of file diff --git a/upload-sorter/requirements.txt b/upload-sorter/requirements.txt new file mode 100644 index 0000000..037103e --- /dev/null +++ b/upload-sorter/requirements.txt @@ -0,0 +1 @@ +pillow \ No newline at end of file diff --git a/upload-sorter/sort.py b/upload-sorter/sort.py new file mode 100644 index 0000000..3cebe23 --- /dev/null +++ b/upload-sorter/sort.py @@ -0,0 +1,33 @@ +#!/usr/bin/python + +import time +import os +import signal +import sys + +# Set the directories +watch_directories: list[str] = os.getenv('WATCH_DIR', '/sync').split(':') +recordings_directory: str = os.getenv('RECORDINGS_DIRECTORY', '/recordings') +photos_directory: str = os.getenv('PHOTOS_DIRECTORY', '/photos') +sleep_duration: int = 30 + +def main(): + while True: + for directory in watch_directories: + sort_directory(directory) + print(f"Finished sorting directory {directory}") + print(f"Sleeping for {sleep_duration} seconds") + time.sleep(sleep_duration) + +def sort_directory(directory): + + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + +def signal_handler(sig, frame): + print('Shutdown signal received. Exiting gracefully.') + sys.exit(0) + +if __name__ == "__main__": + main() \ No newline at end of file