From bd79389e6370cdb68f33b89592edff9ffb39dfb2 Mon Sep 17 00:00:00 2001 From: SuperManito <68613938+SuperManito@users.noreply.github.com> Date: Thu, 22 Aug 2024 18:19:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChangeMirrors.sh | 99 +++++++++++++++++++------------------ DockerInstallation.sh | 20 ++++---- docs/index.md | 2 +- docs/mirrors/index.md | 6 +-- docs/use/command-options.md | 6 +-- requirements.txt | 2 +- 6 files changed, 70 insertions(+), 65 deletions(-) diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh index 2e431d9..fa0d139 100755 --- a/ChangeMirrors.sh +++ b/ChangeMirrors.sh @@ -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 @@ -245,7 +245,7 @@ function main() { function handle_command_options() { ## 命令帮助 function output_command_help() { - echo -e "\n命令选项(参数名/含义/参数值): + echo -e "\n命令选项(名称/含义/选项值): --abroad 使用海外软件源 无 --edu 使用中国大陆教育网软件源 无 @@ -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 打印源文件修改前后差异 无 @@ -291,78 +291,74 @@ 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) @@ -370,7 +366,7 @@ function handle_command_options() { SOURCE_EPEL_BRANCH="$2" shift else - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支!" fi ;; --branch-security) @@ -378,7 +374,7 @@ function handle_command_options() { SOURCE_SECURITY_BRANCH="$2" shift else - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支!" fi ;; --branch-vault) @@ -386,7 +382,7 @@ function handle_command_options() { SOURCE_VAULT_BRANCH="$2" shift else - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支!" fi ;; --branch-portage) @@ -394,7 +390,7 @@ function handle_command_options() { SOURCE_PORTAGE_BRANCH="$2" shift else - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支!" fi ;; ## 指定 Debian 系操作系统的版本代号 @@ -403,15 +399,27 @@ 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) @@ -419,11 +427,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 ;; ## WEB 协议(HTTP/HTTPS) @@ -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 附加软件包 @@ -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) @@ -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 ;; ## 备份原有软件源 @@ -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 ;; ## 忽略覆盖备份提示 @@ -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 ;; ## 清理下载缓存 @@ -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 ;; ## 打印源文件修改前后差异 @@ -540,7 +548,7 @@ function handle_command_options() { exit ;; *) - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请确认后重新输入!" ;; esac shift @@ -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 diff --git a/DockerInstallation.sh b/DockerInstallation.sh index 3cce81f..b59eb8e 100755 --- a/DockerInstallation.sh +++ b/DockerInstallation.sh @@ -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 @@ -134,7 +134,7 @@ function handle_command_options() { ## 命令帮助 function output_command_help() { echo -e " -命令选项(参数名/含义/参数值): +命令选项(名称/含义/选项值): --source 指定 Docker CE 源地址 地址 --source-registry 指定 Docker Registry 源地址 地址 @@ -154,13 +154,13 @@ 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 仓库地址 @@ -168,13 +168,13 @@ 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_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 版本代号 @@ -183,7 +183,7 @@ function handle_command_options() { DEBIAN_CODENAME="$2" shift else - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本代号!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定版本代号!" fi ;; ## 安装最新版本 @@ -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 ;; ## 忽略覆盖备份提示 @@ -212,7 +212,7 @@ function handle_command_options() { exit ;; *) - output_error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!" + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请确认后重新输入!" ;; esac shift diff --git a/docs/index.md b/docs/index.md index 10a9deb..6810f4f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,7 +31,7 @@ hide: --- 无需了解相关技术,文档提供了全面的知识储备和操作指引,轻松上手 - 文档还提供了一些常见问题的解决方法以及一些高级用法的用例 + 文档还提供了一些常见问题的解决方法以及一些高级用法的示例 - :material-vector-polyline:{ .lg .middle } __广泛的系统支持__ diff --git a/docs/mirrors/index.md b/docs/mirrors/index.md index 6c29a7d..4663af0 100644 --- a/docs/mirrors/index.md +++ b/docs/mirrors/index.md @@ -29,7 +29,7 @@ hide: ???+ question "使用帮助" - :supported: 支持    :unsupport: 不支持    :incompatible: 不兼容,表示软件源分支命名不符合脚本默认规则但可以通过命令参数来使用,关于具体用法示例和各操作系统所使用的默认分支名称[详见此处](../use/command-options.md#指定软件源分支) + :supported: 支持    :unsupport: 不支持    :incompatible: 不兼容,表示软件源分支命名不符合脚本默认规则但可以通过命令选项来使用,关于具体用法示例和各操作系统所使用的默认分支名称[详见此处](../use/command-options.md#指定软件源分支) 如果这里没有想使用的镜像站那可以看看其它运行模式和命令选项。软件源的速度区分刷新速度和下行速率,后者才是关键,具体请结合实际地理位置选择尝试,还可以通过[辅助工具网站](#工具网站)进行一些测试 @@ -241,11 +241,11 @@ hide: | 非洲 · Liquid Telecom · 肯尼亚 :flag-KE: | [mirror.liquidtelecom.com](https://mirror.liquidtelecom.com "https://mirror.liquidtelecom.com") | | 非洲 · Dimension Data · 南非 :flag-ZA: | [mirror.dimensiondata.com](https://mirror.dimensiondata.com "https://mirror.dimensiondata.com") | -???+ note "帮助本项目完善更多海外软件源" +???+ note "帮助项目完善更多海外软件源" 该列表中的软件源参考自 [`Ubuntu 镜像列表`](https://launchpad.net/ubuntu/+cdmirrors "https://launchpad.net/ubuntu/+cdmirrors")、[`Debian 镜像列表`](https://www.debian.org/CD/http-ftp/#mirrors "https://www.debian.org/CD/http-ftp/#mirrors")、[`Fedora Mirror Manager`](https://admin.fedoraproject.org/mirrormanager/mirrors "https://admin.fedoraproject.org/mirrormanager/mirrors") 并且在此之前全部经过了有效性验证,但未作实际测试 - 作者没有精力持续维护列表中的这些海外镜像站,如果你想补充更多海外软件源或更正当前已有,请修改脚本内的 [`mirror_list_abroad 数组变量`](https://github.com/SuperManito/LinuxMirrors/blame/main/ChangeMirrors.sh#L28 "https://github.com/SuperManito/LinuxMirrors/blame/main/ChangeMirrors.sh#L28") 并按照下面的编辑规范进行修改 + 作者没有精力持续维护列表中的这些海外镜像站,如果你想补充更多海外软件源或更正当前已有,请修改脚本内的 [`mirror_list_abroad 数组变量`](https://github.com/SuperManito/LinuxMirrors/blame/main/ChangeMirrors.sh#L60 "https://github.com/SuperManito/LinuxMirrors/blame/main/ChangeMirrors.sh#L60") 并按照下面的编辑规范进行修改 你可以在确认软件源地址无误后前往 GitHub 仓库提交 [Pull Requests](https://github.com/SuperManito/LinuxMirrors/pulls "https://github.com/SuperManito/LinuxMirrors/pulls"),也可以 :material-source-fork: Fork 仓库后自行定制使用 diff --git a/docs/use/command-options.md b/docs/use/command-options.md index 379a1c3..af8f1d9 100644 --- a/docs/use/command-options.md +++ b/docs/use/command-options.md @@ -14,14 +14,14 @@ | `--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` | | `--print-diff` | 是否打印源文件修改前后差异 | `true` 或 `false` | -| `--use-intranet-source` | 优先使用内网软件源地址 | 无 | -| `--use-official-source` | 使用目标操作系统的官方软件源 | 无 | | `--only-epel` | 仅更换 EPEL 软件源模式 | 无 | | `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 | | `--help` | 查看帮助菜单 | 无 | @@ -166,7 +166,7 @@ bash <(curl -sSL https://linuxmirrors.cn/main.sh) \ bash <(curl -sSL https://linuxmirrors.cn/main.sh) \ --source mirror.example.com \ --protocol http \ - --intranet false \ + --use-intranet-source false \ --install-epel true \ --close-firewall true \ --backup true \ diff --git a/requirements.txt b/requirements.txt index 61397f5..290304e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -mkdocs-material==9.5.30 +mkdocs-material==9.5.32 mkdocs-glightbox==0.4.0 mkdocs-exclude-search==0.6.6 \ No newline at end of file