59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# WSL 端:打包项目并临时提供 HTTP 下载
|
||
# 运行方式:bash scripts/pack_and_serve.sh
|
||
|
||
set -e
|
||
|
||
PROJECT_DIR="/home/rwu/WSLprojects/AICODE-2026"
|
||
CLAUDE_GLOBAL_DIR="/home/rwu/.claude"
|
||
PACK_DIR="/tmp/aicode_transfer"
|
||
ARCHIVE_NAME="aicode2026_transfer.tar.gz"
|
||
PORT=8899
|
||
|
||
echo "=== 准备打包 ==="
|
||
rm -rf "$PACK_DIR"
|
||
mkdir -p "$PACK_DIR"
|
||
|
||
echo "→ 打包项目文件..."
|
||
tar -czf "$PACK_DIR/project.tar.gz" \
|
||
--exclude=".git" \
|
||
--exclude="__pycache__" \
|
||
--exclude="*.pyc" \
|
||
-C "$(dirname "$PROJECT_DIR")" \
|
||
"$(basename "$PROJECT_DIR")"
|
||
|
||
echo "→ 打包全局 Claude 配置..."
|
||
tar -czf "$PACK_DIR/claude_global.tar.gz" \
|
||
--exclude=".git" \
|
||
-C "$(dirname "$CLAUDE_GLOBAL_DIR")" \
|
||
"$(basename "$CLAUDE_GLOBAL_DIR")"
|
||
|
||
echo "→ 合并为一个压缩包..."
|
||
tar -czf "/tmp/$ARCHIVE_NAME" -C "$PACK_DIR" .
|
||
|
||
FILESIZE=$(du -sh "/tmp/$ARCHIVE_NAME" | cut -f1)
|
||
LAN_IP=$(hostname -I | awk '{print $2}')
|
||
|
||
echo ""
|
||
echo "=== 打包完成 ==="
|
||
echo "文件大小:$FILESIZE"
|
||
echo ""
|
||
echo "=== 启动 HTTP 服务 ==="
|
||
echo "在 Mac Mini 上执行以下命令:"
|
||
echo ""
|
||
echo " bash <(curl -s http://$LAN_IP:$PORT/setup_on_mac.sh)"
|
||
echo ""
|
||
echo "或者分两步:"
|
||
echo " curl -O http://$LAN_IP:$PORT/$ARCHIVE_NAME"
|
||
echo " curl -O http://$LAN_IP:$PORT/setup_on_mac.sh && bash setup_on_mac.sh"
|
||
echo ""
|
||
echo "按 Ctrl+C 停止服务"
|
||
echo "========================"
|
||
|
||
# 把 setup 脚本也放进服务目录
|
||
cp "$(dirname "$0")/setup_on_mac.sh" /tmp/
|
||
cp "/tmp/$ARCHIVE_NAME" /tmp/
|
||
|
||
cd /tmp
|
||
python3 -m http.server $PORT
|