fix: 更新 delete_all_projects.sh 脚本以优化项目获取和展示逻辑
This commit is contained in:
10
.gitignore
vendored
10
.gitignore
vendored
@@ -1,4 +1,8 @@
|
|||||||
# Claude Code
|
# Vibe Coding
|
||||||
.mcp.json
|
|
||||||
.claude/
|
.claude/
|
||||||
llmdoc/
|
.oprncode/
|
||||||
|
|
||||||
|
llmdoc/
|
||||||
|
.sisyphus/
|
||||||
|
|
||||||
|
.mcp.json
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
# 文件名: delete_all_projects.sh
|
# 文件名: delete_all_projects.sh
|
||||||
# 描述: 删除 GCP 账户下的所有项目(危险操作)
|
# 描述: 删除 GCP 账户下的所有项目(危险操作)
|
||||||
# 作者: Cloud Tools Project
|
# 作者: Cloud Tools Project
|
||||||
# 版本: 2.1.0(支持远程库加载)
|
# 版本: 2.1.1(支持远程库加载)
|
||||||
# 警告: 此操作不可逆,所有项目数据将永久丢失
|
# 警告: 此操作不可逆,所有项目数据将永久丢失
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
@@ -90,32 +90,39 @@ readonly LOG_FILE="deleted_projects_$(date +%Y%m%d_%H%M%S).log"
|
|||||||
log_set_file "$LOG_FILE"
|
log_set_file "$LOG_FILE"
|
||||||
|
|
||||||
#
|
#
|
||||||
# 获取并展示所有项目
|
# 获取所有项目 ID 列表
|
||||||
|
# 返回: 项目 ID 列表(每行一个),通过 stdout 返回
|
||||||
|
# 退出码: 0 成功,1 失败
|
||||||
#
|
#
|
||||||
get_and_display_projects() {
|
get_projects() {
|
||||||
# 获取所有项目
|
|
||||||
log_warning "获取项目列表..."
|
log_warning "获取项目列表..."
|
||||||
local projects
|
local projects
|
||||||
projects=$(gcloud projects list --format="value(projectId)")
|
projects=$(gcloud projects list --format="value(projectId)")
|
||||||
|
|
||||||
if [ -z "$projects" ]; then
|
if [ -z "$projects" ]; then
|
||||||
log_warning "没有找到任何项目"
|
log_warning "没有找到任何项目"
|
||||||
exit 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 显示所有项目
|
|
||||||
log_warning "以下项目将被删除:"
|
|
||||||
echo "$projects" | nl
|
|
||||||
echo
|
|
||||||
|
|
||||||
# 统计项目数量
|
|
||||||
local project_count
|
|
||||||
project_count=$(echo "$projects" | wc -l)
|
|
||||||
log_warning "总计: $project_count 个项目"
|
|
||||||
|
|
||||||
echo "$projects"
|
echo "$projects"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 显示项目列表(带编号)
|
||||||
|
# 参数: $1 - 项目列表(换行符分隔)
|
||||||
|
# 输出: 到 stderr
|
||||||
|
#
|
||||||
|
display_projects() {
|
||||||
|
local projects="$1"
|
||||||
|
local project_count
|
||||||
|
project_count=$(echo "$projects" | wc -l | tr -d ' ')
|
||||||
|
|
||||||
|
log_warning "以下项目将被删除:"
|
||||||
|
echo "$projects" | nl >&2
|
||||||
|
echo >&2
|
||||||
|
log_warning "总计: $project_count 个项目"
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# 删除单个项目
|
# 删除单个项目
|
||||||
#
|
#
|
||||||
@@ -154,13 +161,22 @@ main() {
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 获取并展示项目列表
|
# 获取项目列表
|
||||||
local projects
|
local projects
|
||||||
projects=$(get_and_display_projects)
|
projects=$(get_projects)
|
||||||
|
|
||||||
|
# 检查是否有项目
|
||||||
|
if [ -z "$projects" ]; then
|
||||||
|
log_warning "没有找到任何项目,退出"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 显示项目列表
|
||||||
|
display_projects "$projects"
|
||||||
|
|
||||||
# 统计项目数量
|
# 统计项目数量
|
||||||
local project_count
|
local project_count
|
||||||
project_count=$(echo "$projects" | wc -l)
|
project_count=$(echo "$projects" | wc -l | tr -d ' ')
|
||||||
|
|
||||||
# 第二次确认
|
# 第二次确认
|
||||||
log_error "最后确认:您将要删除 $project_count 个项目!"
|
log_error "最后确认:您将要删除 $project_count 个项目!"
|
||||||
@@ -180,9 +196,9 @@ main() {
|
|||||||
|
|
||||||
for project_id in $projects; do
|
for project_id in $projects; do
|
||||||
if delete_project "$project_id" "$LOG_FILE"; then
|
if delete_project "$project_id" "$LOG_FILE"; then
|
||||||
((deleted_count++))
|
((deleted_count++)) || true
|
||||||
else
|
else
|
||||||
((failed_count++))
|
((failed_count++)) || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 添加短暂延迟,避免 API 限制
|
# 添加短暂延迟,避免 API 限制
|
||||||
|
|||||||
Reference in New Issue
Block a user