#!/opt/imh-python/bin/python3 import subprocess import os from sys import exit def is_rhel8(): try: with open('/etc/redhat-release', 'r') as release_file: release_info = release_file.read().strip() if "release" in release_info: version = int(release_info.split("release")[1].strip().split(".")[0]) return version <= 8 except ValueError as e: print(f"Error determining OS version: {e}") def install_python38(): if os.path.exists('/usr/bin/python3.8'): return else: subprocess.run(["yum", "install", "python38", "-y"]) def update_install_script(oldtext, newtext): if not os.path.isfile('/scripts/install_terminal'): print("unable to find /scripts/install_terminal for patching") exit(1) with open('/scripts/install_terminal', 'r') as f: lines = f.readlines() updated_lines = [] for line in lines: if "express pty.js" in line: continue if oldtext in line and newtext not in line: line = line.replace(oldtext, newtext) updated_lines.append(line) #patched_installer = contents.replace(oldtext, newtext) with open('/scripts/install_terminal', 'w') as f: f.writelines(updated_lines) def run_installer(): subprocess.run(['/scripts/install_terminal'], cwd='/root', check=True) def main(): oldtext = "--production" newtext = "--production --python=/usr/bin/python3.8" if is_rhel8(): install_python38() update_install_script(oldtext, newtext) run_installer() if __name__ == "__main__": main()