Skip to content

Commit

Permalink
优化
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperManito committed Aug 22, 2024
1 parent 27aff7f commit bd79389
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 65 deletions.
99 changes: 52 additions & 47 deletions ChangeMirrors.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
## Modified: 2024-07-31
## Modified: 2024-08-22
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
Expand Down Expand Up @@ -245,7 +245,7 @@ function main() {
function handle_command_options() {
## 命令帮助
function output_command_help() {
echo -e "\n命令选项(参数名/含义/参数值):
echo -e "\n命令选项(名称/含义/选项值):
--abroad 使用海外软件源 无
--edu 使用中国大陆教育网软件源 无
Expand All @@ -261,13 +261,13 @@ function handle_command_options() {
--branch-portage 指定 Gentoo 系统 portage 仓库的软件源分支(路径) 分支名
--codename 指定 Debian 系操作系统的版本代号 代号名称
--protocol 指定 WEB 协议 http 或 https
--use-intranet-source 是否优先使用内网软件源地址 true 或 false
--use-official-source 是否使用目标操作系统的官方软件源 true 或 false
--install-epel 是否安装 EPEL 附加软件包 true 或 false
--close-firewall 是否关闭防火墙 true 或 false
--backup 是否备份原有软件源 true 或 false
--upgrade-software 是否更新软件包 true 或 false
--clean-cache 是否清理下载缓存 true 或 false
--use-intranet-source 优先使用内网软件源地址 无
--use-official-source 使用目标操作系统的官方软件源 无
--only-epel 仅更换 EPEL 软件源模式 无
--ignore-backup-tips 忽略覆盖备份提示 无
--print-diff 打印源文件修改前后差异 无
Expand All @@ -291,110 +291,106 @@ function handle_command_options() {
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址"
fi
;;
--source-epel)
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE_EPEL="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址"
fi
;;
--source-security)
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE_SECURITY="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址"
fi
;;
--source-vault)
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE_VAULT="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址"
fi
;;
--source-portage)
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE_PORTAGE="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址"
fi
;;
## 使用官方源
--use-official-source)
USE_OFFICIAL_SOURCE="true"
;;
## 指定软件源分支
--branch)
if [ "$2" ]; then
SOURCE_BRANCH="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支"
fi
;;
--branch-epel)
if [ "$2" ]; then
SOURCE_EPEL_BRANCH="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支"
fi
;;
--branch-security)
if [ "$2" ]; then
SOURCE_SECURITY_BRANCH="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支"
fi
;;
--branch-vault)
if [ "$2" ]; then
SOURCE_VAULT_BRANCH="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支"
fi
;;
--branch-portage)
if [ "$2" ]; then
SOURCE_PORTAGE_BRANCH="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支"
fi
;;
## 指定 Debian 系操作系统的版本代号
Expand All @@ -403,27 +399,39 @@ function handle_command_options() {
DEBIAN_CODENAME="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本代号"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定版本代号"
fi
;;
## 优先使用内网地址
--use-intranet-source)
USE_INTRANET_SOURCE="true"
## 使用官方源
--use-official-source)
if [ "$2" ]; then
case "$2" in
[Tt]rue | [Ff]alse)
USE_OFFICIAL_SOURCE="${2,,}"
shift
;;
*)
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
--intranet)
## 废弃的命令选项
## 使用内网地址
--intranet | --use-intranet-source)
if [ "$2" ]; then
case "$2" in
[Tt]rue | [Ff]alse)
USE_INTRANET_SOURCE="${2,,}"
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
## WEB 协议(HTTP/HTTPS)
Expand All @@ -435,11 +443,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 http 或 https 作为参数值"
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该选项后指定 http 或 https !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 WEB 协议(HTTP/HTTPS)!"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 WEB 协议(http/https)!"
fi
;;
## 安装 EPEL 附加软件包
Expand All @@ -451,11 +459,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
--only-epel)
Expand All @@ -471,11 +479,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
## 备份原有软件源
Expand All @@ -487,11 +495,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
## 忽略覆盖备份提示
Expand All @@ -507,11 +515,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
## 清理下载缓存
Expand All @@ -523,11 +531,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
## 打印源文件修改前后差异
Expand All @@ -540,7 +548,7 @@ function handle_command_options() {
exit
;;
*)
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请确认后重新输入!"
;;
esac
shift
Expand Down Expand Up @@ -889,10 +897,7 @@ function choose_mirrors() {
local intranet_source
for ((i = 0; i < ${#mirror_list_extranet[@]}; i++)); do
if [[ "${SOURCE}" == "${mirror_list_extranet[i]}" ]]; then
# echo "${SOURCE}"
intranet_source="${mirror_list_intranet[i]}"
# echo "${intranet_source}"
# exit
ONLY_HTTP="True"
break
else
Expand Down
20 changes: 10 additions & 10 deletions DockerInstallation.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
## Modified: 2024-07-26
## Modified: 2024-08-22
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
Expand Down Expand Up @@ -134,7 +134,7 @@ function handle_command_options() {
## 命令帮助
function output_command_help() {
echo -e "
命令选项(参数名/含义/参数值):
命令选项(名称/含义/选项值):
--source 指定 Docker CE 源地址 地址
--source-registry 指定 Docker Registry 源地址 地址
Expand All @@ -154,27 +154,27 @@ function handle_command_options() {
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址"
fi
;;
## 指定 Docker Registry 仓库地址
--source-registry)
if [ "$2" ]; then
echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}"
if [ $? -eq 0 ]; then
output_error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址"
else
SOURCE_REGISTRY="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')"
shift
fi
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定镜像仓库地址"
fi
;;
## 指定 Debian 版本代号
Expand All @@ -183,7 +183,7 @@ function handle_command_options() {
DEBIAN_CODENAME="$2"
shift
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本代号"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定版本代号"
fi
;;
## 安装最新版本
Expand All @@ -195,11 +195,11 @@ function handle_command_options() {
shift
;;
*)
output_error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
;;
esac
else
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
fi
;;
## 忽略覆盖备份提示
Expand All @@ -212,7 +212,7 @@ function handle_command_options() {
exit
;;
*)
output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!"
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请确认后重新输入!"
;;
esac
shift
Expand Down
Loading

0 comments on commit bd79389

Please sign in to comment.