#!/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 echo "GPATH=$MY_PATH" > $MY_PATH/.install/.GPATH source $MY_PATH/.install/.GPATH init_loc="$MY_PATH/shell/init.sh" now=$(date +%Y-%m-%d) unset err ## Récupère les données du profile [[ -f $MY_PATH/.profile ]] && source $MY_PATH/.profile ## Récupère les arguments args="$@" [[ $args =~ all ]] && repOption=o [[ $args =~ noptions ]] && repOption=n [[ $args =~ force ]] && force_req=o [[ $args =~ noask ]] && noask=o ## Vérifie le type de système [[ $(uname -a | grep arm) ]] && isARM=YES || unset isARM if [[ $(grep -E 'stretch|18.|19.' /etc/os-release) ]]; then OS=stretch; elif [[ $(grep buster /etc/os-release) ]]; then OS=buster; else echo "${c_red}Votre OS n'est pas supporté$c_"; exit 1; fi echo -e "$OS\n$isARM" > .install/.OS unset err ## Vérifie si le script est en lancé par root if [ "$EUID" -eq 0 ] then echo -e "${c_red}Veuillez ne pas executez ce script en root. Choisissez un utilisateur pour votre serveur G1sms+ (nous recommandons l'utilisateur pi)$c_" exit 1 fi ## Update G1sms+ code git pull || err+=1 chmod u+x $MY_PATH/.install/*.sh $MY_PATH/.install/export_colors.sh [[ -f ~/.bash_aliases ]] && source ~/.bash_aliases ## Vérifie si IPFS est installé if [[ $force_req == "o" || -z $(which ipfs) || -z $(which gammu) ]];then echo -e "${c_yellow}IPFS ou gammu n'ont pas été détectés sur votre machine, nous allons installer tous les prérequis...$c_" $MY_PATH/.install/1-install_requirements.sh silkaj ipfs gammu || err+=1 $MY_PATH/.install/2a-configure_ipfs_layer.sh || err+=1 else echo -e "${c_green}IPFS et gammu sont déjà installé !$c_" fi echo -e "${c_yellow}Ce script va désormais configurer votre noeud G1sms+$c_" if [[ -f $MY_PATH/.install/templates/init.sh ]]; then [[ ! $ADMINPSEUDO ]] && echo -e "${c_light}Votre PSEUDO? (celui de votre Compte membre Duniter)$c_" && read ADMINPSEUDO [[ "$ADMINPSEUDO" == "" ]] && echo -e "${c_red}IMPOSSIBLE DE CONTINUER$c_" && exit 1 [[ ! $ADMINPHONE ]] && echo -e "${c_light}Le Numéro de téléphone SMS Admin? (Support de ce noeud) (ex +33611223344)$c_" && read ADMINPHONE [[ "$ADMINPHONE" == "" ]] && echo -e "${c_red}IMPOSSIBLE DE CONTINUER$c_" && exit 1 [[ ! $MASTERPHONE ]] && echo -e "${c_light}Le numéro de la carte SIM, du module SMS. AUCUNE liaison SMS? Laissez vide (défaut: +33600000000)$c_" && read MASTERPHONE [[ "$MASTERPHONE" == "" ]] && MASTERPHONE="+33600000000" [[ ! $ADRESSE ]] && echo -e "${c_light}L'adresse où se trouve votre G1Node pour indiquer où venir chercher ses G1Tag (ex: au G1FabLab de Toulouse)$c_" && read ADRESSE [[ ! $PIN ]] && echo -e "${c_light}Le code PIN de votre carte SIM ? (ex: 1234)$c_" && read PIN [[ "$PIN" == "" ]] && PIN="1234" echo -e "ADMINPSEUDO: $ADMINPSEUDO\nADMINPHONE: $ADMINPHONE\nMASTERPHONE: $MASTERPHONE\nADRESSE: $ADRESSE\nPIN: $PIN" [[ $noask != "o" ]] && echo -e "${c_light}${c_blue}LES PARAMETRES SONT BONS? Appliquer? ENTER ou CTRL-C ? (Editez le fichier .profile si incorrect)$c_" && read [[ -f shell/init.sh ]] && mv shell/init.sh shell/init.sh.old cp $MY_PATH/.install/templates/init.sh shell/init.sh || err+=1 sed -i s/_MASTERPHONE/$MASTERPHONE/g $init_loc sed -i s/_ADRESSE/$ADRESSE/g $init_loc sed -i s/_ADMINPHONE/$ADMINPHONE/g $init_loc sed -i s/_ADMINPSEUDO/$ADMINPSEUDO/g $init_loc if [[ ! -f $MY_PATH/.profile ]]; then cp $MY_PATH/.install/templates/.profile $MY_PATH/ sed -i s/_MASTERPHONE/$MASTERPHONE/g $MY_PATH/.profile sed -i s/_ADRESSE/$ADRESSE/g $MY_PATH/.profile sed -i s/_ADMINPHONE/$ADMINPHONE/g $MY_PATH/.profile sed -i s/_ADMINPSEUDO/$ADMINPSEUDO/g $MY_PATH/.profile sed -i s/_PIN/$PIN/g $MY_PATH/.profile fi else echo -e "${c_red}init.sh introuvable...$c_" err+=1 exit 1 fi ## Configuration de gammu $MY_PATH/.install/2b-configure_gammu.sh || err=1 ## Installations optionnels repOld=$repOption [[ -z $repOption ]] && echo -e "${c_yellow}Voulez-vous installer les modules complémentaires de copylaradio ? (o/n)$c_" && read repOption if [[ $repOption =~ ^(o|1|yes|options|a|all)$ ]]; then $MY_PATH/.install/3-install_copylaradio.sh || err+=1; fi; repOption=$repOld [[ -z $repOption ]] && echo -e "${c_yellow}Voulez-vous installer l'interface web Kalkun ? (o/n)$c_" && read repOption if [[ $repOption =~ ^(o|1|yes|options|a|all)$ ]]; then isKalkun=1; $MY_PATH/.install/4a-install_kalkun.sh || err+=1; fi; repOption=$repOld [[ -z $repOption && -z $isKalkun ]] && echo -e "${c_yellow}Voulez-vous installer l'interface web playSMS ? (o/n)$c_" && read repOption if [[ $repOption =~ ^(o|1|yes|options|a|all)$ ]]; then $MY_PATH/.install/4b-install_playsms.sh || err+=1; fi; repOption=$repOld if [[ $err ]]; then echo -e "---\n${c_red}L'installation générale n'est mal déroulé =($c_" else echo -e "---\n${c_green}Félécitation ! L'installation de votre noeud G1SMS s'est terminé avec succès !\nBienvenue à bord =)$c_" fi exit 0