From 9bc74ed611880c35af3b62a9fb56451df1f34676 Mon Sep 17 00:00:00 2001 From: jorenchik Date: Sat, 4 Jan 2025 17:45:16 +0200 Subject: [PATCH] =?UTF-8?q?Linux=20pieg=C4=81des=20sagatavo=C5=A1anas=20sk?= =?UTF-8?q?ripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linuxdeploy.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 linuxdeploy.py diff --git a/linuxdeploy.py b/linuxdeploy.py new file mode 100644 index 0000000..d52c88b --- /dev/null +++ b/linuxdeploy.py @@ -0,0 +1,46 @@ +import os +import subprocess +import shutil +import sys + +if len(sys.argv) != 2: + print("Izmantošana: python linuxdeploy.py ") + exit(1) + +binary_path = sys.argv[1] +release_dir = "./linuxrelease" +lib_dir = os.path.join(release_dir, "lib") + +if not os.path.isfile(binary_path): + print(f"Kļūda: fails {binary_path} nevar būt atvērts.") + exit(1) + +os.makedirs(release_dir, exist_ok=True) + +executable_dest = os.path.join(release_dir, os.path.basename(binary_path)) +shutil.copy2(binary_path, executable_dest) +print(f"Izpildes fails {binary_path} ir nokopēts uz {executable_dest}") +print(f"Tiek iegūtas koplietotās bibliotēkas (.so) no {binary_path}...") + +libraries = [] +try: + output = subprocess.check_output(["ldd", binary_path], universal_newlines=True) + libraries = [] + for line in output.splitlines(): + parts = line.split("=>") + if len(parts) > 1: + lib_path = parts[1].strip().split(" ")[0] + if os.path.isabs(lib_path): + libraries.append(lib_path) +except subprocess.CalledProcessError as e: + print(f"Neizdevās darbināt ldd uz {binary_path}: {e}") + exit(1) +print(f"Tika atrastas {len(libraries)} bibliotēkas.") + +os.makedirs(lib_dir, exist_ok=True) +for lib in libraries: + dest_path = os.path.join(lib_dir, os.path.basename(lib)) + shutil.copy2(lib, dest_path) + print(f"Nokopēta {lib}") + +print(f"Piegādes komplekts ir sagatavots {release_dir}")