Added ability to update launcher

This commit is contained in:
McCloudS
2024-03-22 18:15:03 -06:00
committed by GitHub
parent d4a3b6edcd
commit 8dcb6b20f6

View File

@@ -104,17 +104,41 @@ def main():
parser.add_argument('-i', '--install', default=False, action='store_true', help="Install/update all necessary packages (default: False)") parser.add_argument('-i', '--install', default=False, action='store_true', help="Install/update all necessary packages (default: False)")
parser.add_argument('-a', '--append', default=False, action='store_true', help="Append 'Transcribed by whisper' to generated subtitle (default: False)") parser.add_argument('-a', '--append', default=False, action='store_true', help="Append 'Transcribed by whisper' to generated subtitle (default: False)")
parser.add_argument('-u', '--update', default=False, action='store_true', help="Update Subgen (default: False)") parser.add_argument('-u', '--update', default=False, action='store_true', help="Update Subgen (default: False)")
parser.add_argument('-x', '--exitearly', default=False, action='store_true', help="Exit without running subgen.py (default: False)") parser.add_argument('-x', '--exit-early', default=False, action='store_true', help="Exit without running subgen.py (default: False)")
parser.add_argument('-s', '--setupbazarr', default=False, action='store_true', help="Prompt for common Bazarr setup parameters and save them for future runs (default: False)") parser.add_argument('-s', '--setup-bazarr', default=False, action='store_true', help="Prompt for common Bazarr setup parameters and save them for future runs (default: False)")
parser.add_argument('-b', '--branch', type=str, default='main', help='Specify the branch to download from. (default: main)') parser.add_argument('-b', '--branch', type=str, default='main', help='Specify the branch to download from. (default: main)')
parser.add_argument('-l', '--launcher-update', default=False, action='store_true', help="Update launcher.py and re-launch (default: False)")
args = parser.parse_args() args = parser.parse_args()
# Get the branch name from the BRANCH environment variable or default to 'main'
branch_name = args.branch or os.getenv("BRANCH", "main")
# Determine the script name based on the branch name
script_name = f"-{branch_name}.py" if branch_name != "main" else ".py"
# Check if the script exists or if the UPDATE environment variable is set to True
if not os.path.exists(script_name) or convert_to_bool(os.getenv("UPDATE", "False")):
print(f"Downloading launcher.py from GitHub branch {branch_name}...")
download_from_github(f"https://raw.githubusercontent.com/McCloudS/subgen/{branch_name}/launcher.py", f'launcher{script_name}')
else:
print("File exists and UPDATE is not set to True, skipping download.")
# Prepare the arguments to exclude update triggers
excluded_args = ['--launcher-update', '-l']
new_args = [arg for arg in sys.argv[1:] if arg not in excluded_args]
if branch_name == 'main' and args.launcher_update:
print("Running launcher.py for the 'main' branch.")
os.execl(sys.executable, sys.executable, "launcher.py", *new_args)
else:
print(f"Running launcher-{branch_name}.py for the '{branch_name}' branch.")
os.execl(sys.executable, sys.executable, f"launcher-{branch_name}.py", *new_args)
# Set environment variables based on the parsed arguments # Set environment variables based on the parsed arguments
os.environ['DEBUG'] = str(args.debug) os.environ['DEBUG'] = str(args.debug)
os.environ['APPEND'] = str(args.append) os.environ['APPEND'] = str(args.append)
if args.setupbazarr: if args.setup_bazarr:
prompt_and_save_bazarr_env_variables() prompt_and_save_bazarr_env_variables()
load_env_variables() load_env_variables()
@@ -127,20 +151,14 @@ def main():
download_from_github(requirements_url, requirements_file) download_from_github(requirements_url, requirements_file)
install_packages_from_requirements(requirements_file) install_packages_from_requirements(requirements_file)
# Get the branch name from the BRANCH environment variable or default to 'main'
branch_name = args.branch or os.getenv("BRANCH", "main")
# Determine the script name based on the branch name
subgen_script_name = f"subgen-{branch_name}.py" if branch_name != "main" else "subgen.py"
# Check if the script exists or if the UPDATE environment variable is set to True # Check if the script exists or if the UPDATE environment variable is set to True
if not os.path.exists(subgen_script_name) or convert_to_bool(os.getenv("UPDATE", "False")): if not os.path.exists(script_name) or convert_to_bool(os.getenv("UPDATE", "False")):
print(f"Downloading {subgen_script_name} from GitHub branch {branch_name}...") print(f"Downloading subgen.py from GitHub branch {branch_name}...")
download_from_github(f"https://raw.githubusercontent.com/McCloudS/subgen/{branch_name}/subgen.py", subgen_script_name) download_from_github(f"https://raw.githubusercontent.com/McCloudS/subgen/{branch_name}/subgen.py", f'subgen{script_name}')
else: else:
print("File exists and UPDATE is not set to True, skipping download.") print("File exists and UPDATE is not set to True, skipping download.")
if not args.exitearly: if not args.exit_early:
if branch_name: if branch_name:
subprocess.run([f'{python_cmd}', '-u', f'subgen-{branch_name}.py'], check=True) subprocess.run([f'{python_cmd}', '-u', f'subgen-{branch_name}.py'], check=True)
else: else: