PagerMaid-Modify/utils/docker.sh
2020-02-19 23:31:39 +08:00

131 lines
3.3 KiB
Bash

#!/bin/sh
welcome() {
echo ""
echo "Welcome to PagerMaid docker installer."
echo "The installation process will begin"
echo "in 5 seconds, if you wish to cancel,"
echo "please abort within 5 seconds."
echo ""
sleep 5
}
docker_check() {
echo "Checking for docker . . ."
if command -v docker;
then
echo "Docker appears to be present, moving on . . ."
else
echo "Docker is not installed on this system, please"
echo "install docker and add yourself to the docker"
echo "group and re-run this script."
exit 1
fi
}
git_check() {
echo "Checking for git . . ."
if command -v git;
then
echo "Git appears to be present, moving on . . ."
else
echo "Git is not installed on this system, please"
echo "install git and re-run this script."
exit 1
fi
}
access_check() {
echo "Testing for docker access . . ."
if [ -w /var/run/docker.sock ]
then
echo "This user can access docker, moving on . . ."
else
echo "This user has no access to docker, or docker is"
echo "not running. Please add yourself to the docker"
echo "group or run the script as superuser."
exit 1
fi
}
download_repo() {
echo "Downloading repository . . ."
rm -rf /tmp/pagermaid
git clone https://git.stykers.moe/scm/~stykers/pagermaid.git /tmp/pagermaid
cd /tmp/pagermaid || exit
}
configure() {
config_file=config.yml
echo "Generating config file . . ."
cp config.gen.yml config.yml
printf "Please enter application API Key: "
read -r api_key <&1
sed -i "s/KEY_HERE/$api_key/" $config_file
printf "Please enter application API Hash: "
read -r api_hash <&1
sed -i "s/HASH_HERE/$api_hash/" $config_file
printf "Please enter application language (Example: en): "
read -r application_language <&1
sed -i "s/en/$application_language/" $config_file
printf "Please enter application region (Example: United States): "
read -r application_region <&1
sed -i "s/United States/$application_region/" $config_file
printf "Enable logging? [Y/n] "
read -r logging_confirmation <&1
case $logging_confirmation in
[yY][eE][sS]|[yY])
printf "Please enter your logging group/channel ChatID (press Enter if you want to log into Kat): "
read -r log_chatid <&1
if [ -z "$log_chatid" ]
then
echo "Setting log target to Kat."
else
sed -i "s/503691334/$log_chatid/" $config_file
fi
sed -i "s/log: False/log: True/" $config_file
;;
[nN][oO]|[nN])
echo "Moving on . . ."
;;
*)
echo "Invalid choice . . ."
exit 1
;;
esac
}
build_docker() {
printf "Please enter the name of the PagerMaid container: "
read -r container_name <&1
echo "Building docker image . . ."
docker rm -f "$container_name" > /dev/null 2>&1
docker build - --force-rm --no-cache -t pagermaid_"$container_name < Dockerfile.persistant"
}
start_docker() {
echo "Starting docker container . . ."
echo "After logging in, press Ctrl + C to make the container restart in background mode."
sleep 3
docker run -it --restart=always --name="$container_name" --hostname="$container_name" pagermaid_"$container_name" <&1
}
cleanup() {
echo "Cleaning up . . ."
rm -rf /tmp/pagermaid
}
start_installation() {
welcome
docker_check
git_check
access_check
download_repo
configure
build_docker
start_docker
cleanup
}
start_installation