PagerMaid-Modify/utils/docker.sh
2020-04-04 14:19:33 +08:00

134 lines
3.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
welcome() {
echo ""
echo "欢迎使用 PagerMaid-Modify Docker 安装程序。"
echo "安装即将开始"
echo "在5秒钟内如果您想取消"
echo "请在5秒钟内终止此脚本。"
echo ""
sleep 5
}
docker_check() {
echo "正在检查 Docker 安装情况 . . ."
if command -v docker;
then
echo "Docker 似乎存在, 安装过程继续 . . ."
else
echo "Docker 未安装在此系统上"
echo "请安装 Docker 并将自己添加到 Docker"
echo "分组并重新运行此脚本。"
exit 1
fi
}
git_check() {
echo "正在检查 Git 安装情况 . . ."
if command -v git;
then
echo "Git 似乎存在, 安装过程继续 . . ."
else
echo "Git 未安装在此系统上"
echo "请安装 Git 并重新运行此脚本。"
exit 1
fi
}
access_check() {
echo "测试 Docker 环境 . . ."
if [ -w /var/run/docker.sock ]
then
echo "该用户可以使用 Docker , 安装过程继续 . . ."
else
echo "该用户无权访问 Docker或者 Docker"
echo "没有运行。 请添加自己到 Docker"
echo "分组并重新运行此脚本。"
exit 1
fi
}
download_repo() {
echo "下载 repository 中. . ."
rm -rf /tmp/pagermaid
git clone https://github.com/xtaodada/PagerMaid-Modify.git /tmp/pagermaid
cd /tmp/pagermaid || exit
}
configure() {
config_file=config.yml
echo "生成配置文件中 . . ."
cp config.gen.yml config.yml
printf "请输入应用程序 api_key"
read -r api_key <&1
sed -i "s/KEY_HERE/$api_key/" $config_file
printf "请输入应用程序 api_hash"
read -r api_hash <&1
sed -i "s/HASH_HERE/$api_hash/" $config_file
printf "请输入应用程序语言示例zh-cn"
read -r application_language <&1
sed -i "s/zh-cn/$application_language/" $config_file
printf "请输入应用程序地区例如China"
read -r application_region <&1
sed -i "s/China/$application_region/" $config_file
printf "请输入 Google TTS 后缀例如cn"
read -r application_tts <&1
sed -i "s/cn/$application_tts/" $config_file
printf "启用日志记录? [Y/n]"
read -r logging_confirmation <&1
case $logging_confirmation in
[yY][eE][sS]|[yY])
printf "请输入您的日志记录群组/频道的 ChatID (如果要发送给 Kat 请按Enter"
read -r log_chatid <&1
if [ -z "$log_chatid" ]
then
echo "LOG 将发送到 Kat."
else
sed -i "s/503691334/$log_chatid/" $config_file
fi
sed -i "s/log: False/log: True/" $config_file
;;
[nN][oO]|[nN])
echo "安装过程继续 . . ."
;;
*)
echo "输入错误 . . ."
exit 1
;;
esac
}
build_docker() {
printf "请输入 PagerMaid 容器的名称:"
read -r container_name <&1
echo "正在构建 Docker 镜像 . . ."
docker rm -f "$container_name" > /dev/null 2>&1
docker build - --force-rm --no-cache -t pagermaid_"$container_name" < Dockerfile.persistant
}
start_docker() {
echo "正在启动 Docker 容器 . . ."
echo "在登录后,请按 Ctrl + C 使容器在后台模式下重新启动。"
sleep 3
docker run -it --restart=always --name="$container_name" --hostname="$container_name" pagermaid_"$container_name" <&1
}
cleanup() {
echo "正在清理临时文件 . . ."
rm -rf /tmp/pagermaid
}
start_installation() {
welcome
docker_check
git_check
access_check
download_repo
configure
build_docker
start_docker
cleanup
}
start_installation