#! /bin/bash ######################################################### # Inclusions ######################################################### # Variables partagées # releases url : https://github.com/syncthing/syncthing/releases/ archive_url="https://github.com/syncthing/syncthing/releases/download/v1.23.1/syncthing-linux-amd64-v1.23.1.tar.gz" archivename=$(echo $archive_url | grep -oE 'syncthing-(.*)\.tar\.gz') iconurl="https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png" #Chemin sans slash de fin. Un dossier "syncthing" sera créé dans ce dossier installdir="$HOME/bin" # Fonctions partagées fonct_VerifConnexionInternet () { ping -c 1 github.com > /dev/null if [ "$?" != "0" ]; then echo "Erreur la connexion internet semble défaillante" echo "Fin du script." exit else echo "La connexion internet est fonctionnelle" echo "" fi } fonct_ArretSurErreur(){ if [ "$?" != "0" ]; then echo "Erreur, le script va s'arreter." exit fi } fonct_CreationDossier () { if [ ! -d "$1" ]; then mkdir -p "$1" echo "Le dossier $1 a été créé." fi } fonct_PaquetInstalle () { which $1 if [ "$?" != "0" ]; then echo "$1 ne semble pas installé." echo "Fin du script." exit else echo "Le paquet $1 est bien installé." fi } fonct_TouchePourContinuer (){ read -p "Presser une touche pour continuer ou Ctrl-C pour annuler" CONT } fonct_ArretSurErreur(){ if [ "$?" != "0" ]; then echo "Le script a rencontré une erreur." exit fi } ######################################################### # Début du script ######################################################### # Introduction clear cat << "EOF" ..~~+~~~.. .++++~~.~~~++++. .++~. .~++.. ~o+ ~ooo+. ~o~ +oooo +o .+++.~o+ .o+. ..~+ooo~. +o +ooo+++++++++oooo~ .++ +ooo~.. ~~oo. ~o~ ~o+ +o+~+o~ .++~. .oooo~ .~+++~~~~~~++o+o+. ..~~~~~~.. EOF echo "" echo "Syncthing remplace les logiciels de synchronisation\n\ privateurs et les services de cloud par un\n\ logiciel ouvert, de confiance et décentralisé.\n\ \n https://syncthing.net" echo "" echo "Ce que fait ce script :\n\ -Télécharger et installer Syncthing de façon automatique\n\ -Créer un dossier bin dans votre home\n\ -modifier l'adresse de l'interface web pour être utilisable sur un réseau local" echo "" fonct_TouchePourContinuer clear # Vérifications fonct_VerifConnexionInternet fonct_PaquetInstalle wget fonct_PaquetInstalle tar fonct_CreationDossier $installdir fonct_ArretSurErreur # Téléchargement syncthing echo "Téléchargement Syncthing." wget --quiet $archive_url tar -xzf $archivename -C $installdir mv $installdir/syncthing-linux-amd64-*/ $installdir/syncthing rm $archivename echo "" echo "Syncthing a bien été installé." sleep 5 # Ajout alias au .bashrc echo "alias syncthing=\".$installdir/syncthing/syncthing\"" >> $HOME/.bashrc which screen if [ "$?" = "0" ]; then echo "alias syncthinginascreen=\"screen -d -m -S syncthinginascreen $installdir/syncthing/syncthing\"" >> $HOME/.bashrc fi fonct_ArretSurErreur echo "Ajout des alias au bashrc terminé." source $HOME/.bashrc sleep 5 #Modification de l'adresse de l'interface web $installdir/syncthing/syncthing >> /dev/null & sleep 60 killall syncthing sed -i 's/127.0.0.1:8384/0.0.0.0:8384/' $HOME/.config/syncthing/config.xml echo "Fichier de configuration modifié" echo "Une fois lancé vous pouvez accéder à l'interface web de Syncthing depuis le réseau local." echo "" echo "Installation terminée."