#! /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" # 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 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 ######################################################### # Vérifications fonct_VerifConnexionInternet fonct_PaquetInstalle firefox # Introduction clear cat << "EOF" ..~~+~~~.. .++++~~.~~~++++. .++~. .~++.. ~o+ ~ooo+. ~o~ +oooo +o .+++.~o+ .o+. ..~+ooo~. +o +ooo+++++++++oooo~ .++ +ooo~.. ~~oo. ~o~ ~o+ +o+~+o~ .++~. .oooo~ .~+++~~~~~~++o+o+. ..~~~~~~.. Syncthing remplace les logiciels de synchronisation privateurs et les services de cloud par un logiciel ouvert, de confiance et décentralisé. https://syncthing.net EOF fonct_TouchePourContinuer clear cat << "EOF" Ce que fait ce script : -Télécharger et installer Syncthing de façon automatique -Créer un dossier bin dans votre home -Ajouter une entrée de démmarrage automatique pour Syncthing -Ajouter l'icone de Syncthing dans votre dossier icons -Ajouter une entrée Interface Syncthing dans votre menu principal Notes : Après l'installation l'interface web de Syncthing démmarra automatiquement à chaque session. Vous pouvez empecher cela en décochant la case «Lancer le navigateur web» dans la configuration de Syncthing. EOF fonct_TouchePourContinuer clear mkdir -p $HOME/bin/ fonct_ArretSurErreur mkdir -p $HOME/.icons/ fonct_ArretSurErreur mkdir -p $HOME/.config/autostart/ fonct_ArretSurErreur # Téléchargement syncthing wget --quiet $archive_url fonct_ArretSurErreur tar -xzf $archivename -C $HOME/bin/ mv $HOME/bin/syncthing* $HOME/bin/syncthing rm $archivename echo "" echo "Syncthing a bien été installé." sleep 2 # Ajout alias au .bashrc #echo export PATH='$PATH':~/bin/syncthing >> $HOME/.bashrc sed -i '1iexport PATH='$PATH':~/bin/syncthing' $HOME/.bashrc fonct_ArretSurErreur echo "Ajout des alias au bashrc réussi." sleep 2 # Installation des fichiers desktop cat << "EOF" > $HOME/.config/autostart/syncthing-autostart.desktop [Desktop Entry] Encoding=UTF-8 Name=Syncthing Icon=syncthing Comment="Outil de synchronisation sécurisé sans serveur central" Exec=bin/syncthing/syncthing Terminal=false Type=Application EOF fonct_ArretSurErreur echo "Ajout du lien de démmarrage automatique réussi." sleep 2 cat << "EOF" > $HOME/.local/share/applications/syncthing-wui.desktop [Desktop Entry] Encoding=UTF-8 Name=Syncthing (Interface Web) Icon=syncthing Comment="Ouvrir l'interface web de Syncthing" Exec=firefox --new-tab 127.0.0.1:8384 Terminal=false Type=Application Categories=Network; EOF fonct_ArretSurErreur echo "Ajout du raccourcis vers l'interface web réussi." echo "Vous le trouverez dans le menu principal" echo "de votre distribution Rubrique Internet/Syncthing (Interface web)" sleep 2 # Installation de l'icone wget --quiet -O $HOME/.icons/syncthing.png $iconurl fonct_ArretSurErreur echo "Ajout de l'icone réussi." sleep 2 echo "" echo "Installation terminée." echo "Merci de relancer votre session pour terminer l'installation" echo "" echo "Vous pouvez également installer Syncthing-GTK pour avoir les notifications de bureau et d'autres options" echo "https://github.com/syncthing/syncthing-gtk"