144 lines
3.6 KiB
Bash
144 lines
3.6 KiB
Bash
#! /bin/bash
|
|
|
|
#########################################################
|
|
# Inclusions
|
|
#########################################################
|
|
|
|
# Variables partagées
|
|
# releases url : https://github.com/syncthing/syncthing/releases/
|
|
version="1.27.10"
|
|
archive_url="https://github.com/syncthing/syncthing/releases/download/v"$version"/syncthing-linux-amd64-v"$version".tar.gz"
|
|
archivename="syncthing-linux-amd64-v"$version".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."
|