131 lines
3.3 KiB
Bash
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
|