#!/bin/bash VERSION=1.0.8.1 # 获取脚本名称用于帮助信息 SCRIPT_NAME=$(basename "$0") PATH_PREFIX=/var/lib/apm/apm/files/ace-env/ log.warn() { echo -e "[\e[33mWARN\e[0m]: \e[1m$*\e[0m"; } log.error() { echo -e "[\e[31mERROR\e[0m]: \e[1m$*\e[0m"; } log.info() { echo -e "[\e[96mINFO\e[0m]: \e[1m$*\e[0m"; } log.debug() { echo -e "[\e[32mDEBUG\e[0m]: \e[1m$*\e[0m"; } # 帮助信息函数 show_help() { cat < 运行指定软件包的可执行文件 ssaudit 使用 ssaudit 进行软件安装,详情见 spark-store debug 显示调试系统信息并进入调试环境 amber 彩蛋功能 xmp360 彩蛋功能 bronya 彩蛋功能 -h, --help 显示此帮助信息 EOF } apm_exec(){ mkdir -p /tmp/apm/${coredir} fuse-overlayfs -o lowerdir="${PATH_PREFIX}/var/lib/apm/${basedir}/files/ace-env",upperdir="${PATH_PREFIX}/var/lib/apm/${coredir}/files/core/",workdir="${PATH_PREFIX}/var/lib/apm/${coredir}/files/work/" "/tmp/apm/${coredir}" chrootEnvPath=/tmp/apm/${coredir} /var/lib/apm/apm/files/ace-run "$@" umount /tmp/apm/${coredir} } # 调试信息函数 debug_info() { log.debug "======= APM Debug Information =======" log.debug "User: $(whoami)" log.debug "Hostname: $(hostname)" log.debug "OS: $(lsb_release -ds 2>/dev/null || uname -om)" log.debug "Kernel: $(uname -sr)" log.debug "Bash Version: ${BASH_VERSION}" log.debug "APT Version: $(apt --version | head -n1)" log.debug "APM APT Version: $(amber-pm-debug apt --version | head -n1)" log.debug "=====================================" amber-pm-debug "$@" } # 彩蛋函数 amber_egg() { cat <<'EOF' ____ ____ / __ )____ __________ ____ / __ )__ ______ ____ __ __ / __ / __ `/ ___/ __ \/ __ \ / __ / / / / __ \/ __ \/ / / / / /_/ / /_/ / / / /_/ / / / / / /_/ / /_/ / / / / / / / /_/ / /_____/\__,_/_/ \____/_/ /_/ /_____/\__,_/_/ /_/_/ /_/\__, / /____/ Amber Package Manager - Sparkling with magic! 安柏包管理器 - blingbling~ 💎 Another target tracked down by Outrider Amber! 侦察骑士,发现目标! EOF } bronya_egg() { cat <<'EOF' _ __ ____ _ ____ __ | | / /__ _/ / /____ ______(_)__ / __/_ _____ / /____ __ _ | |/ / _ `/ / '_/ // / __/ / -_) _\ \/ // (_-/dev/null 2>&1; then # 如果带前缀的目录不存在,尝试不带前缀的目录 if ls "/var/lib/apm/$pkg" >/dev/null 2>&1; then # 如果不带前缀的目录存在,清空 PATH_PREFIX PATH_PREFIX="" else # 如果两个目录都不存在,报错退出 log.error "Package not installed: $pkg" exit 1 fi fi coredir=$pkg basedir=$(cat ${PATH_PREFIX}/var/lib/apm/${coredir}/info) # 检测是否有额外命令参数 if [ $# -gt 0 ]; then # 有额外参数:执行用户提供的命令 log.info "Running user command: $*" apm_exec "$@" else # 没有额外参数:提示 log.info "Usage: $SCRIPT_NAME run $pkg [EXEC_PATH]" exit 1 fi ;; debug) debug_info ;; ssaudit) amber-pm-debug ssaudit "$@" --native ;; -h|--help) show_help ;; amber) amber_egg ;; xmp360) xmp360_egg ;; bronya) bronya_egg ;; *) show_help ;; esac