upload-sorter init
This commit is contained in:
		
							
								
								
									
										17
									
								
								publish.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								publish.sh
									
									
									
									
									
										Executable file
									
								
							@@ -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
 | 
				
			||||||
							
								
								
									
										20
									
								
								upload-sorter/DOCKERFILE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								upload-sorter/DOCKERFILE
									
									
									
									
									
										Normal file
									
								
							@@ -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"]
 | 
				
			||||||
							
								
								
									
										1
									
								
								upload-sorter/requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								upload-sorter/requirements.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					pillow
 | 
				
			||||||
							
								
								
									
										33
									
								
								upload-sorter/sort.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								upload-sorter/sort.py
									
									
									
									
									
										Normal file
									
								
							@@ -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()
 | 
				
			||||||
		Reference in New Issue
	
	Block a user