This repository has been archived by the owner on Nov 13, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
composer-install.sh
executable file
·97 lines (75 loc) · 2.4 KB
/
composer-install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/env bash
# ------------------------------------------------------------------------------ PREPARE
# Chemin vers composer dans strider
composerPath="/usr/local/bin/composer.phar";
# Fallback sur les autres env, il faut par contre que composer soit dans le PATH
if [ ! -f $composerPath ];
then
composerPath="composer"
fi
# Le fichier de log pour afficher les erreurs
logFile="composer-install.log"
# Tout exécuter depuis le dossier php de base
#basePath=$1;
basePath=dist/
cd $basePath;
# ------------------------------------------------------------------------------ FUNCTIONS
# Lancer une installation composer dans le dossier $composerFolder
function composerInstall ()
{
echo "> Installing dependencies for $basePath$composerFolder"
# Aller dans le dossier de l'install et supprimer le dossier vendor
cd $composerFolder &> /dev/null
rm -rf "vendor"
# Exécuter la commande composer et récupérer chaque ligne
${composerPath} install --no-progress --no-suggest --no-interaction >> $logFile 2>&1
# Vérifier si tout s'est bien passé
if ! [ $? -eq 0 ];
then
# Il y a eu une erreur, on affiche le log
echo "An error happened while installing composer dependencies"
cat $logFile
exit 1
fi
# On est bons !
echo "> Done !"
echo ""
# Important : Retourner au dossier de base
cd - &> /dev/null
}
# ------------------------------------------------------------------------------ INSTALL DEPENDENCIES
# Le dossier vers les plugins
pluginsFolder="user/plugins/";
# Vérifier si le dossier des plugins existe
if [ ! -d $pluginsFolder ];
then
echo "Not a valid Grav installation folder (no plugins directory)"; # TODO : Better message
exit;
fi
# Vérifier si composer.json existe
if [ ! -f "./composer.json" ];
then
echo "Not a valid Grav installation folder (no composer.json detected)"; # TODO : Better message
exit;
fi
# Message car ça peut être long
echo ""
echo "Installing composer dependencies can be long for the first time."
echo ""
# Lancer l'installation composer sur la racine
composerFolder=".";
composerInstall;
# Parcourir les dossiers des plugins
for composerFolder in $pluginsFolder* ;
do
# Le chemin vers le fichier composer.json hypothétique
filePath=$composerFolder"/composer.json";
# Si ce fichier existe
if [ -f $filePath ];
then
# Lancer l'installation composer
composerInstall;
fi
done
# Supprimer le fichier de log
rm -rf $logFile