em-script/em-setup.sh

195 lines
4.6 KiB
Bash

#!/bin/bash
# EM Script Library - Debian 12 系统部署脚本库
# 用于解决国内源配置和系统优化问题
set -e # 遇到错误立即退出
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查是否为 root 用户
check_root() {
if [[ $EUID -ne 0 ]]; then
log_error "此脚本需要 root 权限运行"
log_info "请使用 sudo bash $0 或切换到 root 用户"
exit 1
fi
}
# 检查操作系统
check_os() {
if [[ ! -f /etc/debian_version ]]; then
log_error "此脚本仅支持 Debian 系统"
exit 1
fi
local version=$(cat /etc/debian_version | cut -d. -f1)
if [[ $version -ne 12 ]]; then
log_warning "此脚本针对 Debian 12 优化,当前版本: $version"
fi
log_success "检测到 Debian $version 系统"
}
# 显示帮助信息
show_help() {
cat << EOF
EM Script Library - Debian 12 系统部署工具
用法: $0 [选项] [模块]
选项:
-h, --help 显示此帮助信息
-l, --list 列出所有可用模块
-v, --version 显示版本信息
-d, --debug 启用调试模式
模块:
sources 配置国内软件源
packages 包管理相关操作
system 系统基础配置
network 网络优化配置
security 安全配置
all 执行所有模块
示例:
$0 sources # 配置国内源
$0 sources aliyun # 使用阿里云源
$0 all # 执行所有配置
EOF
}
# 显示版本信息
show_version() {
echo "EM Script Library v1.0.0"
echo "针对 Debian 12 优化的系统部署工具"
}
# 列出可用模块
list_modules() {
echo "可用模块:"
echo " sources - 国内软件源配置"
echo " packages - 包管理工具配置"
echo " system - 系统基础配置"
echo " network - 网络优化配置"
echo " security - 安全配置"
echo ""
echo "使用方法: $0 <模块名>"
}
# 主函数
main() {
local debug=false
local module=""
# 参数解析
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
show_help
exit 0
;;
-v|--version)
show_version
exit 0
;;
-l|--list)
list_modules
exit 0
;;
-d|--debug)
debug=true
shift
;;
-*)
log_error "未知选项: $1"
show_help
exit 1
;;
*)
module="$1"
shift
break
;;
esac
done
# 调试模式
if [[ "$debug" == "true" ]]; then
set -x
log_info "调试模式已启用"
fi
# 检查环境
check_root
check_os
# 执行模块
case $module in
sources)
log_info "开始配置国内软件源..."
bash scripts/sources/configure_sources.sh "$@"
;;
packages)
log_info "开始配置包管理工具..."
bash scripts/packages/configure_packages.sh "$@"
;;
system)
log_info "开始系统基础配置..."
bash scripts/system/configure_system.sh "$@"
;;
network)
log_info "开始网络优化配置..."
bash scripts/network/configure_network.sh "$@"
;;
security)
log_info "开始安全配置..."
bash scripts/security/configure_security.sh "$@"
;;
all)
log_info "开始执行完整配置流程..."
bash scripts/sources/configure_sources.sh
bash scripts/packages/configure_packages.sh
bash scripts/system/configure_system.sh
bash scripts/network/configure_network.sh
bash scripts/security/configure_security.sh
log_success "所有配置完成!"
;;
"")
log_error "未指定模块"
list_modules
exit 1
;;
*)
log_error "未知模块: $module"
list_modules
exit 1
;;
esac
}
# 执行主函数
main "$@"