#!/bin/bash prog="$0" while [ -h "${prog}" ]; do newProg=`/bin/ls -ld "${prog}"` newProg=`expr "${newProg}" : ".* -> \(.*\)$"` if expr "x${newProg}" : 'x/' >/dev/null; then prog="${newProg}" else progdir=`dirname "${prog}"` prog="${progdir}/${newProg}" fi done progdir=`dirname "${prog}"` cd "${progdir}" version=1.6.0-alpine found=$(docker images |grep "pandagroove/tgsearch:${version}-arm64"|wc -l) if [ $found -eq 0 ]; then gzip -dc tgsearch.docker.arm64.${version}.tar.gz | docker load fi compose="" have=$(docker compose -h |grep compose|wc -l) if [ $have -gt 0 ]; then compose="docker compose" else docker-compose -h 2>&1 >/dev/null if [ $? -eq 0 ]; then compose="docker-compose" else #echo "no docker compose, exit" echo "no docker compose, direct run" compose="" #exit 1 fi fi echo "compose:$compose" mkdir tmp >/dev/null 2>&1 chmod 777 tmp mkdir cache >/dev/null 2>&1 chmod 777 cache if [ "$compose" = "" ]; then image=$(cat docker-compose.arm64.yml|grep "image: "|awk '{print $NF}'|tr -d "\"") cat docker-compose.arm64.yml|grep -- "- API_"|awk '{print $NF}' > env.docker cat docker-compose.arm64.yml|grep -- "- STRINGSESSION"|awk '{print $NF}' >> env.docker cat docker-compose.arm64.yml|grep -- "- CACHE_"|awk '{print $NF}' >> env.docker ports=$(cat docker-compose.arm64.yml|grep "ports:" -A 1|grep -- "- "|awk '{print $NF}'|tr -d "\"") expose=$(cat docker-compose.arm64.yml|grep "expose:" -A 1|grep -- "- "|awk '{print $NF}'|tr -d "\"") #echo $image #cat env.docker #echo $ports #echo $expose found=$(cat docker-compose.arm64.yml |grep "STRINGSESSION"|sed -e "s/.*STRINGSESSION//"|wc -c) isdaemon="" if [ $found -gt 10 ]; then echo "session string is set, run in background" isdaemon=" -d " else echo "session string is NOT set, run in foreground for see errors." fi docker container stop tgsearch >/dev/null 2>&1 docker container rm tgsearch >/dev/null 2>&1 docker run $isdaemon --name tgsearch --env-file env.docker --expose $expose -v "${progdir}/cache:/cache" -v "${progdir}/tmp:/tmp" $image /app/tgsearch exit fi $compose -f docker-compose.arm64.yml down >/dev/null 2>&1 found=$(cat docker-compose.arm64.yml |grep "STRINGSESSION"|sed -e "s/.*STRINGSESSION//"|wc -c) if [ $found -gt 10 ]; then echo "session string is set, run in background" $compose -f docker-compose.arm64.yml up -d else echo "session string is NOT set, run in foreground for see errors." $compose -f docker-compose.arm64.yml up fi