#!/usr/bin/env python3 import os import sys import fcntl import asyncio import package.twitch.video_info as video_info import package.twitch.download_videos as download_videos import package.twitch.download_thumbnails as download_thumbnails import package.build_videos as build_videos import package.process_uploads as process_uploads def lock_file(): # Open a lock file lock_file_path = "/tmp/python_script.lock" fp = open(lock_file_path, 'w') try: # Try to grab an exclusive lock without blocking (LOCK_NB) fcntl.lockf(fp, fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError: print("Another instance is already running. Exiting.") sys.exit(1) # Your script logic goes here print("Running exclusively on Linux/macOS...") if __name__ == "__main__": lock_file() upload = False if upload is False: # Get Twitch Video Info asyncio.run(video_info()) # Download Twitch Videos download_videos() download_thumbnails() #Build build_videos() else: process_uploads() print("====================================================") print(f"✅ Done.") print("====================================================")