Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,12 @@ src/ # 源代码
```

其它请见各个目录下的 README.md 文件。


## 文档

概念设计、逻辑设计、物理设计等文档位于 `doc/数据库设计文档` 目录下。

演示截图位于 `doc/演示截图` 目录下。

`doc/草稿` 目录下包含一些草稿文档,包括项目初期使用的数据字典等。
61 changes: 61 additions & 0 deletions submit.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/bin/bash

# 1. 设置压缩包的名称
OUTPUT_FILENAME="submission"

# 2. 使用 GLOB 模式列出要打包的文件
# !! 注意:这里的模式不要用单引号括起来 !!
FILES_TO_PACKAGE=(
doc/
src/
pyproject.toml
README.md
)

# 3. 定义要排除的项 (即使只打包部分文件,排除规则依然有用,以防万一)
# 例如,你可能想打包所有 .js 文件,但排除掉某个测试文件
EXCLUDE_OPTIONS=(
--exclude='.git'
--exclude='.DS_Store'
--exclude='__pycache__'
--exclude='*.pyc'
--exclude='logs/'
--exclude='src/backend/.env'
--exclude='src/backend/.env.test'
--exclude='dest/'
--exclude='node_modules/'

--exclude='doc/草稿/数据字典.md'
--exclude='doc/草稿/需求草稿.md'
)

# --- 脚本执行区域 ---

TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
ARCHIVE_NAME="${OUTPUT_FILENAME}_${TIMESTAMP}.tar.gz"

echo "将打包以下匹配模式/文件:"
# 这里打印的是你定义的模式,而不是 shell 扩展后的结果
for item in "${FILES_TO_PACKAGE[@]}"; do
echo " - $item"
done

if [ ${#EXCLUDE_OPTIONS[@]} -gt 0 ]; then
echo "-----------------------------------"
echo "将排除以下匹配模式:"
for item in "${EXCLUDE_OPTIONS[@]}"; do
echo " - ${item#--exclude=}"
done
fi

echo "-----------------------------------"
echo "压缩包名称为: $ARCHIVE_NAME"
echo "-----------------------------------"

# 执行打包命令
# shell 会先将 FILES_TO_PACKAGE 数组中的 glob 模式扩展成文件列表
# 然后再执行 tar 命令
tar -czvf "$ARCHIVE_NAME" "${EXCLUDE_OPTIONS[@]}" "${FILES_TO_PACKAGE[@]}"

echo "-----------------------------------"
echo "打包压缩完成!"