323 lines
17 KiB
Bash
Executable File
323 lines
17 KiB
Bash
Executable File
#!/bin/bash
|
|
################################################################################
|
|
# Author: Fred (support@qo-op.com)
|
|
# Version: 0.1
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
################################################################################
|
|
MY_PATH="`dirname \"$0\"`" # relative
|
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|
|
|
ME="${0##*/}"
|
|
echo "EXECUTE $ME ($1=phone, $2=guilde)"
|
|
phone="$1"
|
|
guilde="$2"
|
|
|
|
my_guildes="$guilde"
|
|
|
|
message="$(cat /tmp/${phone}_message)"
|
|
|
|
########################################################################
|
|
echo "## GET STATION G1PUB"
|
|
########################################################################
|
|
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || er+=" ipfs daemon not running"
|
|
[[ ! -f /home/${YOU}/.zen/secret.dunikey ]] && echo "Crypto is missing... please provide /home/${YOU}/.zen/secret.dunikey by installing 'astrXbian' TestNet" && exit 1
|
|
G1PUB=$(cat /home/${YOU}/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
|
|
|
SMSADMIN="$(cat /home/${YOU}/.zen/SMSADMIN)"
|
|
|
|
########################################################################
|
|
echo "## sha256sum($phone)"
|
|
########################################################################
|
|
phonehash=$(echo $phone | sha256sum | cut -d ' ' -f1)
|
|
########################################################################
|
|
echo "=> ${phonehash}"
|
|
########################################################################
|
|
|
|
if [[ -d /home/${YOU}/.zen/SMS/PHONE/${phonehash} ]]; then
|
|
NEW=0
|
|
xzuid=$(cat "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/xzuid.txt")
|
|
echo "OK $phone already registered it is $xzuid"
|
|
else
|
|
mkdir -p /home/${YOU}/.zen/SMS/PHONE/${phonehash}/
|
|
fi
|
|
|
|
|
|
if [[ ! $xzuid ]]; then
|
|
NEW=1
|
|
|
|
## CHECK IF GUILDE EXISTS
|
|
[[ ${phone} != $SMSADMIN ]] && [[ ! -d /home/${YOU}/.zen/SMS/GUILDES/${guilde} ]] && echo "AUCUNE GUILDE ${guilde} - EXIT -" && exit 1
|
|
|
|
########################################################################
|
|
echo "## GESTION IDENTITES: G1 NEXTCLOUD QRCODE + GUILDES"
|
|
########################################################################
|
|
|
|
## MAKE UNIQ xzuid
|
|
xzuid=$($MY_PATH/diceware.sh 1 | xargs)${RANDOM:0:4}
|
|
while [[ "$(cat /home/${YOU}/.zen/SMS/PHONE/*/xzuid.txt 2>/dev/null)" == "${xzuid}" ]]
|
|
do
|
|
xzuid=$($MY_PATH/diceware.sh 1 | xargs)${RANDOM:0:4}
|
|
done
|
|
echo "$xzuid" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/xzuid.txt
|
|
echo "=> NOUVEAU $xzuid WELCOME <="
|
|
|
|
|
|
########################################################################
|
|
echo "## $xzuid / $phone => NEW DUNIKEY & QRCODE"
|
|
########################################################################
|
|
echo "#!/bin/bash
|
|
sudo gammu sendsms TEXT \"_PHONE_\" -text \"Heureux de vous accueillir. $xzuid est votre Identité Interplanétaire MadeInZion/OneNation émise par Astroport.\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh
|
|
|
|
########################################################################
|
|
echo "## MAKE secret.dunikey"
|
|
########################################################################
|
|
sudo rm /tmp/secret.dunikey 2>/dev/null
|
|
$MY_PATH/key_create_dunikey.py "$xzuid" "$phone"
|
|
[[ ! $? == 0 ]] && echo "FAILED" && exit 1
|
|
g1pub=$(cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2)
|
|
g1sec=$(cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2)
|
|
|
|
echo $g1pub > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/g1pub.txt
|
|
G1=$(cat /home/${YOU}/.zen/SMS/PHONE/${phonehash}/g1pub.txt)
|
|
|
|
[[ "$my_guildes" != "MIZ" ]] && my_guildes="MIZ;$my_guildes"
|
|
|
|
########################################################################
|
|
echo "## MAKING QRCODES FOR $G1"
|
|
########################################################################
|
|
qrencode -s 6 -o "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/QR.png" "$g1pub"
|
|
|
|
echo "# CREATE 4 DIGIT PASS"
|
|
PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}" | tail -c-5) && echo "$PASS" > /tmp/${xzuid}.pin
|
|
|
|
echo "# $PASS SYMETRIC ENCRYPTION CODE"
|
|
echo "$g1sec" > /tmp/${xzuid}.sec
|
|
openssl enc -aes-256-cbc -salt -in /tmp/${xzuid}.sec -out "/tmp/${xzuid}.sec.ssl" -k $PASS
|
|
sslsec=$(cat /tmp/${xzuid}.sec.ssl | base58)
|
|
qrencode -s 6 -o "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png" "$sslsec"
|
|
echo "## /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png ($PASS) => $sslsec"
|
|
|
|
########################################################################
|
|
echo "## SAVING /home/${YOU}/.zen/SMS/PHONE/${phonehash}/secret.dunikey.encrypt"
|
|
########################################################################
|
|
$MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/secret.dunikey -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/secret.dunikey.encrypt
|
|
[[ ! $? == 0 ]] && echo "FAILED" && exit 1
|
|
|
|
########################################################################
|
|
echo "CREATING EXTRATERRESTRIAL AVATAR PICTURE"
|
|
########################################################################
|
|
$MY_PATH/timeout.sh -t 10 curl -s https://thispersondoesnotexist.com/image -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg
|
|
|
|
if [[ -f /home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg ]]; then
|
|
########################################################################
|
|
echo "CREATING GCHANGE+ PROFILE"
|
|
########################################################################
|
|
$MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://data.gchange.fr" set --name "${xzuid}" --avatar "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg" #GCHANGE+
|
|
[[ $? == 0 ]] && my_guildes="GCHANGE;$my_guildes" && mkdir -p /home/${YOU}/.zen/SMS/GUILDES/GCHANGE/INPUT
|
|
|
|
########################################################################
|
|
echo "CREATING CESIUM+ PROFILE"
|
|
########################################################################
|
|
$MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://g1.data.e-is.pro" set --name "${xzuid}" --avatar "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg" #CESIUM+
|
|
[[ $? == 0 ]] && my_guildes="CESIUM;$my_guildes" && mkdir -p /home/${YOU}/.zen/SMS/GUILDES/CESIUM/INPUT
|
|
fi
|
|
|
|
########################################################################
|
|
echo "## Encrypt ${phone} into /home/${YOU}/.zen/SMS/PHONE/${phonehash}/passwd.encrypt"
|
|
########################################################################
|
|
echo ${phone} > /tmp/${phone}_phone
|
|
$MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/${phone}_phone -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/passwd.encrypt
|
|
[[ ! $? == 0 ]] && echo "Encrypt ${phone} FAILED" && exit 1 || rm /tmp/${phone}_phone
|
|
|
|
########################################################################
|
|
echo "## Encrypt ${xzuid}.pin into /home/${YOU}/.zen/SMS/PHONE/${phonehash}/pin.encrypt"
|
|
########################################################################
|
|
$MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/${xzuid}.pin -o /home/${YOU}/.zen/SMS/PHONE/${phonehash}/pin.encrypt
|
|
[[ ! $? == 0 ]] && echo "Encrypt ${xzuid}.pin FAILED" && exit 1 || rm /tmp/${xzuid}.pin
|
|
|
|
########################################################################
|
|
## NEXTCLOUD LINKS
|
|
########################################################################
|
|
|
|
if [[ -f /var/www/nextcloud/occ ]]; then
|
|
|
|
########################################################################
|
|
echo "## NEXTCLOUD : ${xzuid} / ${phone} "
|
|
########################################################################
|
|
sudo su -s /bin/sh www-data -c "export OC_PASS=\"${phone}\" && php /var/www/nextcloud/occ user:add --password-from-env --group=\"MIZ\" --display-name=\"${xzuid}\" ${xzuid}"
|
|
[[ $? == 0 ]] && my_guildes="NEXTCLOUD;$my_guildes" && mkdir -p /home/${YOU}/.zen/SMS/GUILDES/NEXTCLOUD/INPUT
|
|
|
|
fi
|
|
echo "=> $xzuid/$phone PASS=$PASS G1=$G1"
|
|
|
|
else
|
|
|
|
$MY_PATH/natools.py decrypt -f pubsec -k "/home/${YOU}/.zen/secret.dunikey" -i "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/pin.encrypt" -o "/tmp/${phonehash}.pin"
|
|
PASS=$(cat /tmp/${phonehash}.pin) && rm /tmp/${phonehash}.pin
|
|
G1=$(cat /home/${YOU}/.zen/SMS/PHONE/${phonehash}/g1pub.txt)
|
|
$MY_PATH/natools.py decrypt -f pubsec -k "/home/${YOU}/.zen/secret.dunikey" -i "/home/${YOU}/.zen/SMS/PHONE/${phonehash}/secret.dunikey.encrypt" -o "/tmp/secret.dunikey"
|
|
echo "=> $xzuid/$phone DEJA INSCRIT PASS=$PASS G1=$G1"
|
|
|
|
fi
|
|
|
|
########################################################################
|
|
echo "## INSCRIPTION PHONE / GUILDE : ${phone} / ${guilde}"
|
|
########################################################################
|
|
## NOUVELLE INSCRIPTION GUILDE (pas encore de lien INPUT/${phone})
|
|
[[ ! -f /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/${phone} ]] && echo "#!/bin/bash
|
|
sudo gammu sendsms TEXT \"_PHONE_\" -text \"${xzuid}, bienvenue dans la guilde ${guilde}. Venez proposer vos actions, discutez sur https://oasis.astroport.com ?\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/0000000000000.tosend.sh
|
|
|
|
########################################################################
|
|
## COMBIEN D'ETOILES GCHANGE ?? ADMIN
|
|
########################################################################
|
|
$MY_PATH/timeout.sh -t 10 $MY_PATH/jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://data.gchange.fr" stars -p $G1 > /tmp/$G1.stars
|
|
[ $? -eq 0 ] && XUIDSCORE=$(cat /tmp/$G1.stars | jq .score) || XUIDSCORE=0
|
|
## SCORE > 4 DONNE DROIT DE CREER ET DIALOGUER AVEC LES GUILDES.
|
|
SCORE=$(echo $XUIDSCORE | cut -d '.' -f 1)
|
|
|
|
echo "***** ${xzuid} SCORE GCHANGE = $SCORE *****"
|
|
## MESSAGE DU GUIDE DE LA GUILDE OU DE L'ADMIN DE LA STATION ?
|
|
if [[ $SCORE -ge 4 || ${phone} == $SMSADMIN ]]; then
|
|
|
|
echo "GUILDE ADMIN ${guilde}/OUTPUT/"
|
|
mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/
|
|
mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/
|
|
mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${guilde}/OUTPUT/
|
|
|
|
## PREPARATION DU MESSAGE POUR LA GUILDE (cut for long messages)
|
|
[[ ${message} != "${guilde}" && ${message} != "" ]] && echo "[${guilde}] ${message}" > /tmp/sms && ${MY_PATH}/_BIODYN.sh "${guilde}" ## BUG CAN MAKE COLISION ;)
|
|
# echo "#!/bin/bash
|
|
#sudo gammu sendsms TEXT \"_PHONE_\" -text \"[${guilde}] ${message}\"" > /home/${YOU}/.zen/SMS/GUILDES/${guilde}/OUTPUT/$(date -u +%s%N | cut -b1-13).tosend.sh && chmod +x /home/${YOU}/.zen/SMS/GUILDES/${guilde}/OUTPUT/*.tosend.sh
|
|
|
|
echo "ADMIN GUILDE [${xzuid}/${SCORE}/${guilde}] ${message}"
|
|
## LIENS A LA GUILDE
|
|
[[ ! -d /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES ]] && mkdir -p /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES
|
|
[[ ! -L /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES/${guilde} ]] && ln -s /home/${YOU}/.zen/SMS/GUILDES/${guilde} /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES/${guilde}
|
|
[[ ! -L /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/${phone} ]] && ln -s /home/${YOU}/.zen/SMS/PHONE/${phonehash} /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/${phone}
|
|
echo "${message}" >> /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/$(SCORE)_${phone}_guide.txt ## LOG GUIDE messages to $(SCORE)_${phone}_guide.txt
|
|
|
|
exit 0
|
|
fi
|
|
|
|
########################################################################
|
|
#GUILDE#################################################################
|
|
## RECUPERATION DE LA LIST DES GUILDES $my_guildes
|
|
my_array=($(echo $my_guildes | tr ";" "\n"))
|
|
#Print the split string
|
|
for guilde in "${my_array[@]}"
|
|
do
|
|
|
|
[[ ${guilde} == "" ]] && continue
|
|
########################################################################
|
|
## MEMORISATION INPUT, LIENS PHONE <-> GUILDE & NEXTCLOUD
|
|
########################################################################
|
|
if [[ -d /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT ]]; then
|
|
|
|
## MEMORISATION DU MESSAGE dans GUILDES/${guilde}/INPUT/
|
|
echo "${message}" >> /home/${YOU}/.zen/SMS/GUILDES/${guilde}/INPUT/${phone}.txt
|
|
|
|
## LIEN vers GUILDES/${guilde} dans PHONE/${phonehash}/GUILDES/
|
|
mkdir -p /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES/
|
|
ln -s /home/${YOU}/.zen/SMS/GUILDES/${guilde} /home/${YOU}/.zen/SMS/PHONE/${phonehash}/GUILDES/${guilde}
|
|
|
|
## LIEN vers PHONE/${phonehash} dans GUILDES/${guilde}/MEMBERS/
|
|
mkdir -p /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/
|
|
ln -s /home/${YOU}/.zen/SMS/PHONE/${phonehash} /home/${YOU}/.zen/SMS/GUILDES/${guilde}/MEMBERS/${phone}
|
|
|
|
## CREATION /MadeInZion/${guilde}/${xzuid} dans NEXTCLOUD
|
|
if [[ -f /var/www/nextcloud/occ ]]; then
|
|
sudo mkdir -p /var/www/nextcloud/data/${xzuid}/files/MadeInZion/${guilde}/${xzuid}
|
|
### IDEA !! USE /var/www/nextcloud/data/${xzuid} AS $HOME for SSH OPENPGP access... TODO ?
|
|
fi
|
|
|
|
## CONFIRMATION SMS : INSCRIPTION A LA GUILDE
|
|
echo "#!/bin/bash
|
|
sudo gammu sendsms TEXT \"_PHONE_\" -text \"Inscription à ${guilde} : OK\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh
|
|
chmod +x /home/${YOU}/.zen/SMS/PHONE/${phonehash}/*.tosend.sh
|
|
|
|
else
|
|
|
|
## GUILDE INCONNUE REPONSE SMS
|
|
echo "#!/bin/bash
|
|
sudo gammu sendsms TEXT \"_PHONE_\" -text \"Guilde ${guilde} inconnue. Trouvez ou proposez la votre sur https://oasis.astroport.com\"" > /home/${YOU}/.zen/SMS/PHONE/${phonehash}/$(date -u +%s%N | cut -b1-13).tosend.sh
|
|
chmod +x /home/${YOU}/.zen/SMS/GUILDES/${guilde}/OUTPUT/*.tosend.sh
|
|
|
|
|
|
fi
|
|
|
|
done
|
|
##################################################################GUILDE
|
|
########################################################################
|
|
|
|
########################################################################
|
|
## TAURUS LIVE DEMO PRINT ID + MESSAGE
|
|
# Si une imprimante à autocollant est branchée => Impression Identité Numérique Directe
|
|
# NB: Disable power off : https://github.com/pklaus/brother_ql/issues/50
|
|
# echo -n -e '\x1b\x69\x55\x41\x00\x00' | brother_ql -m QL-700 -p /dev/usb/lp0 send -
|
|
########################################################################
|
|
## DOC IMAGE MAGICK https://legacy.imagemagick.org/Usage/layers/#append
|
|
########################################################################
|
|
if [[ $NEW == 1 ]]; then
|
|
ts=$(date -u +%s%N | cut -b1-13)
|
|
|
|
# PRINT LOGO
|
|
if [[ -e /dev/usb/lp0 ]]; then
|
|
brother_ql_create --model QL-700 $MY_PATH/../img/MadeInZion_G1_ASTROPORT.png --label-size 62 > /tmp/LOGO.bin
|
|
brother_ql_print /tmp/LOGO.bin /dev/usb/lp0
|
|
fi
|
|
sudo cp ../img/MadeInZion_G1_ASTROPORT.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/
|
|
|
|
# PRINT QR.png CREDENTIALS AND QR CODES
|
|
if [[ -e /dev/usb/lp0 ]]; then
|
|
brother_ql_create --model QL-700 /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QR.png --label-size 62 > /tmp/${ts}_QR.bin
|
|
brother_ql_print /tmp/${ts}_QR.bin /dev/usb/lp0
|
|
rm /tmp/${ts}_QR.bin
|
|
else
|
|
echo "NO PRINTER"
|
|
sudo cp /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QR.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/${G1}_QR.png
|
|
fi
|
|
# PRINT ${xzuid} ${phone}
|
|
convert -background White label:"${xzuid} ${phone}" -append /tmp/${ts}_ID.png
|
|
|
|
if [[ -e /dev/usb/lp0 ]]; then
|
|
brother_ql_create --model QL-700 /tmp/${ts}_ID.png --label-size 62 > /tmp/${ts}_ID.bin
|
|
brother_ql_print /tmp/${ts}_ID.bin /dev/usb/lp0
|
|
rm /tmp/${ts}_ID.bin /tmp/${ts}_ID.png
|
|
else
|
|
sudo cp /tmp/${ts}_ID.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/ID_${G1}.png
|
|
fi
|
|
|
|
# PRINT QRSEC.png
|
|
if [[ -e /dev/usb/lp0 ]]; then
|
|
brother_ql_create --model QL-700 /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png --label-size 62 > /tmp/${ts}_QRSEC.bin
|
|
brother_ql_print /tmp/${ts}_QRSEC.bin /dev/usb/lp0; rm /tmp/${ts}_QRSEC.bin
|
|
sudo cp /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/
|
|
fi
|
|
|
|
# PRINT $PASS
|
|
convert -background White label:"CODE SECRET : ${PASS} " -append /tmp/${ts}_PASS.png
|
|
if [[ -e /dev/usb/lp0 ]]; then
|
|
brother_ql_create --model QL-700 /tmp/${ts}_PASS.png --label-size 62 > /tmp/${ts}_PASS.bin
|
|
brother_ql_print /tmp/${ts}_PASS.bin /dev/usb/lp0
|
|
rm /tmp/${ts}_PASS.bin /tmp/${ts}_PASS.png
|
|
else
|
|
sudo cp /tmp/${ts}_PASS.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/PASS.png
|
|
fi
|
|
else
|
|
|
|
## PUT DATA IN NEXTCLOUD FOLDER ( I dont' care if commands fails 2>/dev/null )
|
|
sudo cp ../img/MadeInZion_G1_ASTROPORT.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/ 2>/dev/null
|
|
sudo cp /home/${YOU}/.zen/SMS/PHONE/${phonehash}/avatar.jpg /var/www/nextcloud/data/${xzuid}/files/MadeInZion/ 2>/dev/null
|
|
sudo cp /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QR.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/QR_${G1}.png 2>/dev/null
|
|
sudo cp /home/${YOU}/.zen/SMS/PHONE/${phonehash}/QRSEC.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/QRSEC_${G1}.png 2>/dev/null
|
|
convert -background White label:"${xzuid} ${phone}" -append /tmp/${ts}_ID.png 2>/dev/null
|
|
sudo cp /tmp/${ts}_ID.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/ID_${G1}.png 2>/dev/null
|
|
convert -background White label:"CODE SECRET : ${PASS} " -append /tmp/${ts}_PASS.png 2>/dev/null
|
|
sudo cp /tmp/${ts}_PASS.png /var/www/nextcloud/data/${xzuid}/files/MadeInZion/PASS.png 2>/dev/null
|
|
sudo chmod 775 /var/www/nextcloud/data/${xzuid}/files/MadeInZion 2>/dev/null
|
|
sudo chown -R www-data:${YOU} /var/www/nextcloud/data/${xzuid}/files/MadeInZion 2>/dev/null
|
|
|
|
fi
|
|
|
|
exit 0
|