121 lines
5.2 KiB
Bash
Executable File
121 lines
5.2 KiB
Bash
Executable File
#!/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
|