mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-20 19:59:11 +02:00
startup script enhancements
This commit is contained in:
194
debian/scripts/iobroker_startup.sh
vendored
194
debian/scripts/iobroker_startup.sh
vendored
@@ -39,6 +39,7 @@ echo "----- Debugging information
|
||||
echo "----- -----"
|
||||
echo "----- System -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" arch: $(uname -m))" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" hostname: $(hostname))" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- Docker-Image -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" image: ${VERSION})" && echo " -----"
|
||||
@@ -140,7 +141,7 @@ then
|
||||
then
|
||||
echo "IoBroker backup file detected in /opt/iobroker. But Multihost is set to \"slave\"."
|
||||
echo "Restoring a backup is not supported on Multihost slaves. Please check configuration and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
else
|
||||
echo "IoBroker backup file detected in /opt/iobroker."
|
||||
@@ -197,7 +198,7 @@ echo "Done."
|
||||
echo ' '
|
||||
|
||||
# checking hostname in ioBroker to match container hostname
|
||||
if [ $(bash iobroker object get system.adapter.admin.0 --pretty | grep -oP '(?<="host": ")[^"]*') != $(hostname) ]
|
||||
if [ $(bash iobroker object get system.adapter.admin.0 --pretty | grep -oP '(?<="host": ")[^"]*') != $(hostname) ] && [ "$multihost" != "slave" ]
|
||||
then
|
||||
echo "Hostname in ioBroker does not match the hostname of this container."
|
||||
echo "Updating hostname to " $(hostname)"..."
|
||||
@@ -216,7 +217,7 @@ echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo ' '
|
||||
|
||||
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
||||
echo "For more information take a look at readme.md on Github!"
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo ' '
|
||||
|
||||
|
||||
@@ -282,161 +283,164 @@ fi
|
||||
|
||||
|
||||
# Checking ENV for multihost setup
|
||||
# Configuring objects db host
|
||||
if [ "$multihost" = "master" ] && [ "$objectsdbtype" = "" ] && [ "$objectsdbhost" = "" ] && [ "$objectsdbport" = "" ]
|
||||
if [ "$multihost" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and no external objects db is set."
|
||||
echo "Setting host of objects db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo "Checking Multihost Setup..."
|
||||
echo ' '
|
||||
# Configuring objects db host
|
||||
if [ "$multihost" = "master" ] && [ "$objectsdbtype" = "" ] && [ "$objectsdbhost" = "" ] && [ "$objectsdbport" = "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and no external objects db is set."
|
||||
echo "Setting host of objects db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbhost" = "127.0.0.1" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV. But objects db host is set to \"127.0.0.1\" by ENV too."
|
||||
echo "This configuration will not allow slaves to connect the objects db! Please change or remove ENV \"IOB_OBJECTSDB_HOST\" and start over!"
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbtype" != "" ] && [ "$objectsdbhost" != "" ] && [ "$objectsdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and external objects db is set."
|
||||
elif ([ "$multihost" = "slave" ] && [ "$objectsdbtype" = "" ]) || ([ "$multihost" = "slave" ] && [ "$objectsdbhost" = "" ]) || ([ "$multihost" = "slave" ] && [ "$objectsdbport" = "" ])
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV. But no external objects db is set."
|
||||
echo "You have to configure ENVs \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" to connect to a maser objects db."
|
||||
echo "Please check your settings and start over."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "slave" ] && [ "$objectsdbtype" != "" ] && [ "$objectsdbhost" != "" ] && [ "$objectsdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV and external objects db is set."
|
||||
elif [ "$multihost" != "" ]
|
||||
then
|
||||
echo "Multihost is set but it seems like some configuration is missing."
|
||||
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" correctly and start over."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
fi
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbhost" = "127.0.0.1" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV. But objects db host is set to \"127.0.0.1\" by ENV too."
|
||||
echo "This configuration will not work! Please change or remove ENV \"IOB_OBJECTSDB_HOST\" and start over!"
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbtype" != "" ] && [ "$objectsdbhost" != "" ] && [ "$objectsdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and external objects db is set."
|
||||
echo "Skipping this step..."
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif ([ "$multihost" = "slave" ] && [ "$objectsdbtype" = "" ]) || ([ "$multihost" = "slave" ] && [ "$objectsdbhost" = "" ]) || ([ "$multihost" = "slave" ] && [ "$objectsdbport" = "" ])
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV. But no external objects db is set."
|
||||
echo "You have to configure ENVs \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" to connect to a maser objects db."
|
||||
echo "Please check your settings and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "slave" ] && [ "$objectsdbtype" != "" ] && [ "$objectsdbhost" != "" ] && [ "$objectsdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV and external objects db is set."
|
||||
echo "Skipping this step..."
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" != "" ]
|
||||
then
|
||||
echo "Multihost is set but it seems like some configuration is missing."
|
||||
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" correctly and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
exit 1
|
||||
fi
|
||||
#Configuring states db host
|
||||
if [ "$multihost" = "master" ] && [ "$statesdbtype" = "" ] && [ "$statesdbhost" = "" ] && [ "$statesdbport" = "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and no external states db is set."
|
||||
echo "Setting host of states db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbhost" = "127.0.0.1" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV. But states db host is set to \"127.0.0.1\" by ENV too."
|
||||
echo "This configuration will not work! Please change or remove ENV \"IOB_STATESDB_HOST\" and start over!"
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbtype" != "" ] && [ "$statesdbhost" != "" ] && [ "$statesdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and external states db is set."
|
||||
echo "Skipping this step..."
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif ([ "$multihost" = "slave" ] && [ "$statesdbtype" = "" ]) || ([ "$multihost" = "slave" ] && [ "$statesdbhost" = "" ]) || ([ "$multihost" = "slave" ] && [ "$statesdbport" = "" ])
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV. But no external states db is set."
|
||||
echo "You have to configure ENVs \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESDB_PORT\" to connect to a maser states db."
|
||||
echo "Please check your settings and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "slave" ] && [ "$statesdbtype" != "" ] && [ "$statesdbhost" != "" ] && [ "$statesdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV and external states db is set."
|
||||
echo "Skipping this step..."
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" != "" ]
|
||||
then
|
||||
echo "Multihost is set but it seems like some configuration is missing."
|
||||
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESTDB_PORT\" correctly and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Configuring states db host
|
||||
if [ "$multihost" = "master" ] && [ "$statesdbtype" = "" ] && [ "$statesdbhost" = "" ] && [ "$statesdbport" = "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and no external states db is set."
|
||||
echo "Setting host of states db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbhost" = "127.0.0.1" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV. But states db host is set to \"127.0.0.1\" by ENV too."
|
||||
echo "This configuration will not work! Please change or remove ENV \"IOB_STATESDB_HOST\" and start over!"
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbtype" != "" ] && [ "$statesdbhost" != "" ] && [ "$statesdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"master\" by ENV and external states db is set."
|
||||
elif ([ "$multihost" = "slave" ] && [ "$statesdbtype" = "" ]) || ([ "$multihost" = "slave" ] && [ "$statesdbhost" = "" ]) || ([ "$multihost" = "slave" ] && [ "$statesdbport" = "" ])
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV. But no external states db is set."
|
||||
echo "You have to configure ENVs \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESDB_PORT\" to connect to a maser states db."
|
||||
echo "Please check your settings and start over."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
elif [ "$multihost" = "slave" ] && [ "$statesdbtype" != "" ] && [ "$statesdbhost" != "" ] && [ "$statesdbport" != "" ]
|
||||
then
|
||||
echo "Multihost is set as \"slave\" by ENV and external states db is set."
|
||||
elif [ "$multihost" != "" ]
|
||||
then
|
||||
echo "Multihost is set but it seems like some configuration is missing."
|
||||
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESTDB_PORT\" correctly and start over."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
exit 1
|
||||
fi
|
||||
echo ' '
|
||||
echo "Done."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
# Checking ENVs for custom setup of objects db
|
||||
if [ "$objectsdbtype" != "" ] || [ "$objectsdbhost" != "" ] || [ "$objectsdbport" != "" ]
|
||||
then
|
||||
echo "Checking custom settings for objects db..."
|
||||
echo ' '
|
||||
if [ "$objectsdbtype" != $(jq -r '.objects.type' /opt/iobroker/iobroker-data/iobroker.json) ]
|
||||
then
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of objects db to \""$objectsdbtype"\"..."
|
||||
jq --arg objectsdbtype "$objectsdbtype" '.objects.type = $objectsdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
echo "IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation."
|
||||
fi
|
||||
if [ "$objectsdbhost" != $(jq -r '.objects.host' /opt/iobroker/iobroker-data/iobroker.json) ]
|
||||
then
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of objects db to \""$objectsdbhost"\"..."
|
||||
jq --arg objectsdbhost "$objectsdbhost" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
echo "IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation."
|
||||
fi
|
||||
if [ "$objectsdbport" != $(jq -r '.objects.port' /opt/iobroker/iobroker-data/iobroker.json) ]
|
||||
then
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of objects db to \""$objectsdbport"\"..."
|
||||
jq --arg objectsdbport $objectsdbport '.objects.port = $objectsdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
echo "IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation."
|
||||
fi
|
||||
echo ' '
|
||||
echo "Done."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
|
||||
# Checking ENVs for custom setup of states db#
|
||||
if [ "$statesdbtype" != "" ] || [ "$statesdbhost" != "" ] || [ "$statesdbport" != "" ]
|
||||
then
|
||||
echo "Checking custom settings for states db..."
|
||||
echo ' '
|
||||
if [ "$statesdbtype" != $(jq -r '.states.type' /opt/iobroker/iobroker-data/iobroker.json) ]
|
||||
then
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of states db to \""$statesdbtype"\"..."
|
||||
jq --arg statesdbtype "$statesdbtype" '.states.type = $statesdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
echo "IOB_STATESDB_TYPE is set and value meets detected ioBroker installation."
|
||||
fi
|
||||
if [ "$statesdbhost" != $(jq -r '.states.host' /opt/iobroker/iobroker-data/iobroker.json) ]
|
||||
then
|
||||
echo "ENV IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of states db to \""$statesdbhost"\"..."
|
||||
jq --arg statesdbhost "$statesdbhost" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
echo "IOB_STATESDB_HOST is set and value meets detected ioBroker installation."
|
||||
fi
|
||||
if [ "$statesdbport" != $(jq -r '.states.port' /opt/iobroker/iobroker-data/iobroker.json) ]
|
||||
then
|
||||
echo "ENV IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of states db to \""$statesdbport"\"..."
|
||||
jq --arg statesdbport $statesdbport '.states.port = $statesdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
echo "IOB_STATESDB_PORT is set and value meets detected ioBroker installation."
|
||||
fi
|
||||
echo ' '
|
||||
echo "Done."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user