forked from liaocp666/Jasmine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjcms.sh
More file actions
executable file
·82 lines (68 loc) · 1.97 KB
/
jcms.sh
File metadata and controls
executable file
·82 lines (68 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env bash
# 使用方式:
# ./jcms.sh up
# ./jcms.sh down
# ./jcms.sh package
set -euo pipefail
COMMAND="${1:-}"
case "$COMMAND" in
up)
echo "启动服务 (docker compose up -d) ..."
docker compose up -d
;;
down)
echo "停止并移除容器 (docker compose down) ..."
docker compose down
;;
package)
echo "开始打包 theme → Jasmine ..."
SRC_DIR="theme"
DEST_DIR="Jasmine"
OUTPUT_FILE="Jasmine.zip"
# 检查源目录是否存在
if [[ ! -d "$SRC_DIR" ]]; then
echo "错误:目录 $SRC_DIR 不存在!"
exit 1
fi
rm -rf $OUTPUT_FILE
# 创建目标目录(如果不存在)
mkdir -p "$DEST_DIR"
echo "复制 theme → Jasmine ..."
# 使用 rsync 更安全(保留权限、排除 .git 等)
rsync -a --delete \
--exclude='.git' \
--exclude='node_modules' \
--exclude='.DS_Store' \
--exclude='*.log' \
"$SRC_DIR/" "$DEST_DIR/"
echo "正在创建压缩包:$OUTPUT_FILE"
if command -v zip >/dev/null 2>&1; then
# 使用 zip 命令(macOS/Linux 常见)
(cd "$DEST_DIR" && zip -r -q "../$OUTPUT_FILE" .)
elif command -v 7z >/dev/null 2>&1; then
# 如果有 7z 也可以用
7z a -tzip "$OUTPUT_FILE" "$DEST_DIR/."
else
echo "错误:找不到 zip 或 7z 命令,无法创建 zip 文件"
echo "请安装 zip 工具(例如:brew install zip / apt install zip)"
exit 1
fi
rm -rf $DEST_DIR
echo "打包完成:${OUTPUT_FILE}"
echo "文件大小:$(du -h "$OUTPUT_FILE" | cut -f1)"
;;
"")
echo "错误:缺少参数"
echo "用法:"
echo " $0 up → docker compose up -d"
echo " $0 down → docker compose down"
echo " $0 package → 打包 theme → Jasmine → zip 文件"
exit 1
;;
*)
echo "不支持的参数:$COMMAND"
echo "可用命令:up / down / package"
exit 1
;;
esac
echo "操作完成 ✓"