install_l4d2_plugins.sh
· 1.6 KiB · Bash
Raw
#!/usr/bin/env bash
# install_l4d2_plugins.sh
# 自动安装 Left 4 Dead 2 必选插件脚本(Ubuntu, Bash)
set -euo pipefail
# 检查 rsync 并安装
if ! command -v rsync >/dev/null 2>&1; then
echo "检测到未安装 rsync,正在安装..."
apt-get update
apt-get install -y rsync
fi
# 当前工作目录为 ~/l4d2
WORKDIR="$(pwd)"
# 源目录:整合包中的 JS-MODS
SRC_DIR="$WORKDIR/2025-5-11豆瓣酱な (v1.11)(6968-1155)战役整合包/JS-MODS"
# 目标目录:游戏根目录(包含 addons、cfg 等子目录)
TARGET_DIR="$WORKDIR"
# 合并拷贝目录函数
copy_dir() {
local src="$1"
local dst="$2"
if [ -d "$src" ]; then
echo "合并:$src -> $dst"
rsync -av --no-perms --no-owner --no-group "$src/" "$dst/"
fi
}
# 确保目标子目录存在
mkdir -p "$TARGET_DIR/addons"
mkdir -p "$TARGET_DIR/cfg"
# 1. 先安装 1.11 插件平台(Linux 版)
PLATFORM_DIR="$SRC_DIR/1.11插件平台linux版(6968-1155)(必须先启用这个)/left4dead2"
if [ -d "$PLATFORM_DIR" ]; then
echo "安装插件平台:$PLATFORM_DIR"
copy_dir "$PLATFORM_DIR/addons" "$TARGET_DIR/addons"
copy_dir "$PLATFORM_DIR/cfg" "$TARGET_DIR/cfg"
fi
# 2. 遍历“必选-”开头的插件文件夹
for plugin in "$SRC_DIR"/必选-*; do
[ -d "$plugin/left4dead2" ] || continue
echo "处理插件:$(basename "$plugin")"
# 拷贝 addons 下内容到目标 addons 合并
copy_dir "$plugin/left4dead2/addons" "$TARGET_DIR/addons"
# 拷贝 cfg 下内容到目标 cfg 合并
copy_dir "$plugin/left4dead2/cfg" "$TARGET_DIR/cfg"
done
# 提示完成
echo "所有必选插件及平台已安装完成!"
1 | #!/usr/bin/env bash |
2 | # install_l4d2_plugins.sh |
3 | # 自动安装 Left 4 Dead 2 必选插件脚本(Ubuntu, Bash) |
4 | |
5 | set -euo pipefail |
6 | |
7 | # 检查 rsync 并安装 |
8 | if ! command -v rsync >/dev/null 2>&1; then |
9 | echo "检测到未安装 rsync,正在安装..." |
10 | apt-get update |
11 | apt-get install -y rsync |
12 | fi |
13 | |
14 | # 当前工作目录为 ~/l4d2 |
15 | WORKDIR="$(pwd)" |
16 | # 源目录:整合包中的 JS-MODS |
17 | SRC_DIR="$WORKDIR/2025-5-11豆瓣酱な (v1.11)(6968-1155)战役整合包/JS-MODS" |
18 | # 目标目录:游戏根目录(包含 addons、cfg 等子目录) |
19 | TARGET_DIR="$WORKDIR" |
20 | |
21 | # 合并拷贝目录函数 |
22 | copy_dir() { |
23 | local src="$1" |
24 | local dst="$2" |
25 | if [ -d "$src" ]; then |
26 | echo "合并:$src -> $dst" |
27 | rsync -av --no-perms --no-owner --no-group "$src/" "$dst/" |
28 | fi |
29 | } |
30 | |
31 | # 确保目标子目录存在 |
32 | mkdir -p "$TARGET_DIR/addons" |
33 | mkdir -p "$TARGET_DIR/cfg" |
34 | |
35 | # 1. 先安装 1.11 插件平台(Linux 版) |
36 | PLATFORM_DIR="$SRC_DIR/1.11插件平台linux版(6968-1155)(必须先启用这个)/left4dead2" |
37 | if [ -d "$PLATFORM_DIR" ]; then |
38 | echo "安装插件平台:$PLATFORM_DIR" |
39 | copy_dir "$PLATFORM_DIR/addons" "$TARGET_DIR/addons" |
40 | copy_dir "$PLATFORM_DIR/cfg" "$TARGET_DIR/cfg" |
41 | fi |
42 | |
43 | # 2. 遍历“必选-”开头的插件文件夹 |
44 | for plugin in "$SRC_DIR"/必选-*; do |
45 | [ -d "$plugin/left4dead2" ] || continue |
46 | echo "处理插件:$(basename "$plugin")" |
47 | # 拷贝 addons 下内容到目标 addons 合并 |
48 | copy_dir "$plugin/left4dead2/addons" "$TARGET_DIR/addons" |
49 | # 拷贝 cfg 下内容到目标 cfg 合并 |
50 | copy_dir "$plugin/left4dead2/cfg" "$TARGET_DIR/cfg" |
51 | done |
52 | |
53 | # 提示完成 |
54 | echo "所有必选插件及平台已安装完成!" |