From 8eca27e209b2a24a2936a422258f9593cde90e9b Mon Sep 17 00:00:00 2001
From: shenmo <jifengshenmo@outlook.com>
Date: Tue, 15 Apr 2025 18:24:35 +0800
Subject: [PATCH] linker.sh

---
 debian/rules |  4 +---
 linker.sh    | 35 +++++++++++++++++++++++++++++++++++
 replacer.sh  |  1 +
 3 files changed, 37 insertions(+), 3 deletions(-)
 create mode 100755 linker.sh

diff --git a/debian/rules b/debian/rules
index a506310..fcb9264 100755
--- a/debian/rules
+++ b/debian/rules
@@ -10,9 +10,7 @@ override_dh_auto_configure:
 	cp -r src/ pkg/
 	bash replacer.sh pkg/
 	cd pkg/opt/apps/amber-ce-bookworm/files && bash build-container.sh $(shell uname -m)
-	mkdir pkg/usr/bin
-	ln -vfs ../../opt/apps/amber-ce-bookworm/files/bin/ace-run pkg/usr/bin/bookworm-run
-	ln -vfs ../../opt/apps/amber-ce-bookworm/files/bin/amber-ce-configure-nvidia pkg/usr/bin/amber-ce-bookworm-configure-nvidia
+	bash linker.sh pkg/
 
 override_dh_dwz:
 
diff --git a/linker.sh b/linker.sh
new file mode 100755
index 0000000..759505d
--- /dev/null
+++ b/linker.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+# 安全读取配置文件的推荐方式
+read_config() {
+    local config_file="$1"
+
+    # 检查文件是否存在
+    if [ ! -f "$config_file" ]; then
+        echo "Error: Config file $config_file not found" >&2
+        return 1
+    fi
+
+    # 处理并加载配置
+    source <(
+        sed -nE '
+            # 跳过注释和空行
+            /^[[:space:]]*#/d    # 删除注释行
+            /^[[:space:]]*$/d     # 删除空行
+            # 转换 @VAR@=value 格式
+            s/^@([^@]+)@=(.*)$/\1=\2/p
+        ' "$config_file"
+    )
+}
+
+# 使用示例
+read_config "ace-base.config"
+
+# 访问变量
+echo "Package Name: $PKG_NAME"
+echo "Host Name: $HOST_NAME"
+echo "Executable Name: $EXEC_NAME"
+echo "Pretty Name: $PRETTY_NAME"
+target_dir="${1}" 
+	mkdir ${target_dir}/usr/bin
+	ln -vfs ../../opt/apps/$PKG_NAME/files/bin/ace-run pkg/usr/bin/$EXEC_NAME
+	ln -vfs ../../opt/apps/$PKG_NAME/files/bin/amber-ce-configure-nvidia pkg/usr/bin/$PKG_NAME-configure-nvidia
diff --git a/replacer.sh b/replacer.sh
index eb5db91..71a8328 100644
--- a/replacer.sh
+++ b/replacer.sh
@@ -87,5 +87,6 @@ find "$target_dir" -type d | awk -F/ '{print NF, $0}' | sort -n | cut -d' ' -f2-
         mv -v "$dir" "$parent_path/$newdirname"
     fi
 done
+    
 
 echo "处理完成!"