Compare commits

..

3 Commits

Author SHA1 Message Date
6246cf3c98 自动添加 X-AMBER-CE-DESKTOP-NAME
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-05-30 15:32:16 +00:00
f169fee3ac fix init lauguage
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-04-27 19:09:35 +00:00
1b2eaddb4d !9 Revert "update src/opt/apps/@PKG_NAME@/files/bin/ace-init."
Merge pull request !9 from shenmo/revert-05c5b4a
2025-04-27 19:08:43 +00:00
3 changed files with 57 additions and 45 deletions

3
debian/changelog vendored
View File

@@ -1,8 +1,9 @@
amber-ce-bookworm (12.8.0) UNRELEASED; urgency=low amber-ce-bookworm (12.8.2) UNRELEASED; urgency=low
* 通用 ACE 构建,现不再需要单独使用构建脚本 * 通用 ACE 构建,现不再需要单独使用构建脚本
* 更方便地更改成其他ACE * 更方便地更改成其他ACE
* 现可在容器内使用 dpkg-buildpackage * 现可在容器内使用 dpkg-buildpackage
* 支持 Ubuntu 25 等 systemd 不再提供 utmp 的情景下获取当前用户名 * 支持 Ubuntu 25 等 systemd 不再提供 utmp 的情景下获取当前用户名
* 自动添加 X-AMBER-CE-DESKTOP-NAME
-- shenmo <shenmo@spark-app.store> Wed, 25 Sep 2024 23:15:49 +0800 -- shenmo <shenmo@spark-app.store> Wed, 25 Sep 2024 23:15:49 +0800

View File

@@ -38,38 +38,51 @@ function log.warn() { log.log "warn" $@; }
function log.info() { log.log "info" $@; } function log.info() { log.log "info" $@; }
function log.debug() { log.log "debug" $@; } function log.debug() { log.log "debug" $@; }
function do_integrate(){ function do_integrate(){
local file=$1 local file=$1
if [ -f "$file" ]; then if [ -f "$file" ]; then
exec_line=$(grep "^Exec=" "$file") # 获取文件名(不带.desktop后缀作为X-AMBER-CE-DESKTOP-NAME的值
# 检查是否是@EXEC_NAME@ local desktop_name=$(basename "$file" .desktop)
if [[ $exec_line != Exec="@EXEC_NAME@ "* ]]; then
# 检查是否已经处理过通过检查X-AMBER-CE-DESKTOP-NAME字段
if ! grep -q "^X-AMBER-CE-DESKTOP-NAME=" "$file"; then
echo "$file is detected. Processing host system integration..." echo "$file is detected. Processing host system integration..."
# 修改Exec行如果尚未修改
if ! grep -q "^Exec=@EXEC_NAME@ " "$file"; then
sed -i 's|^Exec=\(.*\)|Exec=@EXEC_NAME@ \1|' "$file" sed -i 's|^Exec=\(.*\)|Exec=@EXEC_NAME@ \1|' "$file"
fi
# 删除TryExec行
sed -i '/^TryExec=/d' "$file" sed -i '/^TryExec=/d' "$file"
# 修改Name行包括本地化Name
sed -i '/^Name=/ s/$/ (@PRETTY_NAME@)/' "$file" sed -i '/^Name=/ s/$/ (@PRETTY_NAME@)/' "$file"
sed -i "/^Name\[${LANGUAGE}\]=/ s/\$/ (@PRETTY_NAME@)/" "$file" sed -i "/^Name\[${LANGUAGE}\]=/ s/\$/ (@PRETTY_NAME@)/" "$file"
# 修改GenericName行包括本地化GenericName
sed -i '/^GenericName=/ s/$/ (@PRETTY_NAME@)/' "$file"
sed -i "/^GenericName\[${LANGUAGE}\]=/ s/\$/ (@PRETTY_NAME@)/" "$file"
# 添加X-AMBER-CE-DESKTOP-NAME字段
echo "X-AMBER-CE-DESKTOP-NAME=${desktop_name}" >> "$file"
# 处理Icon行
icon_line=$(grep "^Icon=" "$file") icon_line=$(grep "^Icon=" "$file")
if [[ "$icon_line" == "Icon=/"* ]]; then if [[ "$icon_line" == "Icon=/"* ]]; then
# 如果Icon=后面接的是/,则添加前缀 # 如果Icon=后面接的是/,则添加前缀
sed -i 's|^Icon=/|Icon=/opt/apps/@PKG_NAME@/files/ace-env/|' "$file" sed -i 's|^Icon=/|Icon=/opt/apps/@PKG_NAME@/files/ace-env/|' "$file"
fi fi
fi fi
fi fi
chmod +x $file chmod +x "$file"
} }
if [ "${IS_ACE_ENV}" != "" ]; then if [ "${IS_ACE_ENV}" != "" ]; then
if [ -e /opt/apps/ ]; then if [ -e /opt/apps/ ]; then
for app_dir in $(ls /opt/apps/); do for app_dir in $(ls /opt/apps/); do
for file in /opt/apps/$app_dir/entries/applications/*.desktop; do for file in /opt/apps/$app_dir/entries/applications/*.desktop; do
do_integrate $file do_integrate "$file"
done done
done done
else else
@@ -77,11 +90,9 @@ if [ "${IS_ACE_ENV}" != "" ] ;then
fi fi
for file in /usr/share/applications/*.desktop; do for file in /usr/share/applications/*.desktop; do
do_integrate $file do_integrate "$file"
done done
find "/usr/share/applications/" -xtype l -delete find "/usr/share/applications/" -xtype l -delete
else else
log.error "DO NOT run me on host OS" log.error "DO NOT run me on host OS"
fi fi

View File

@@ -25,7 +25,7 @@ HERE="$(dirname $(realpath $0))"
function get_current_user() { function get_current_user() {
# 优先通过 who 命令获取用户 # 优先通过 who 命令获取用户
local user local user
user=$(who | awk '{print $1}' | head -n 1 2>/dev/null) user=$(get_current_user 2>/dev/null)
# 如果 who 无输出,则通过 loginctl 获取 # 如果 who 无输出,则通过 loginctl 获取
if [[ -z "$user" ]]; then if [[ -z "$user" ]]; then
@@ -86,8 +86,8 @@ chmod 777 $chrootEnvPath/etc/localtime
bookworm-run cp /host/etc/locale.gen /etc/locale.gen && locale-gen bookworm-run cp /host/etc/locale.gen /etc/locale.gen && locale-gen
bookworm-run touch /finish.flag bookworm-run touch /finish.flag
bookworm-run apt clean bookworm-run apt clean
bookworm-run chown -R $(who | awk '{print $1}' | head -n 1) /usr/lib/locale/ bookworm-run chown -R $(get_current_user) /usr/lib/locale/
sudo -u $(who | awk '{print $1}' | head -n 1) bwrap --dev-bind $chrootEnvPath/ / \ sudo -u $(get_current_user) bwrap --dev-bind $chrootEnvPath/ / \
--setenv PULSE_SERVER /run/user/$uid/pulse/native \ --setenv PULSE_SERVER /run/user/$uid/pulse/native \
--setenv PATH /amber-ce-tools/bin-override:$PATH \ --setenv PATH /amber-ce-tools/bin-override:$PATH \
--setenv IS_ACE_ENV "1" \ --setenv IS_ACE_ENV "1" \