Glisser, déposer, partager.

#! /bin/bash

#########################################################
# Inclusions
#########################################################

# Variables partagées
archive_url="https://github.com/syncthing/syncthing/releases/download/v1.0.1/syncthing-linux-amd64-v1.0.1.tar.gz"
iconurl="https://github.com/syncthing/syncthing/raw/master/assets/logo-128.png"
archivename="$(echo $archive_url | cut -d"/" -f9)"

#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"
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 à cette adresse"
echo http://$(hostname -I)":8384" | sed 's/ //'
echo ""
echo ""
echo "Installation terminée."