devzone 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.devcontainer/devzone
CHANGED
|
@@ -106,9 +106,65 @@ config_opencode() {
|
|
|
106
106
|
fi
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
# Lance une commande longue en écrivant « toujours en cours » toutes les
|
|
110
|
+
# DEVZONE_PROGRESSION s sur stderr : une installation muette semble bloquée (#195)
|
|
111
|
+
avec_progression() {
|
|
112
|
+
local pas="${DEVZONE_PROGRESSION:-30}" ecoule=0 pid code=0
|
|
113
|
+
"$@" &
|
|
114
|
+
pid=$!
|
|
115
|
+
while kill -0 "$pid" 2>/dev/null; do
|
|
116
|
+
sleep 1
|
|
117
|
+
ecoule=$((ecoule + 1))
|
|
118
|
+
if [ $((ecoule % pas)) -eq 0 ] && kill -0 "$pid" 2>/dev/null; then
|
|
119
|
+
echo "devzone : … toujours en cours (${ecoule} s)" >&2
|
|
120
|
+
fi
|
|
121
|
+
done
|
|
122
|
+
wait "$pid" || code=$?
|
|
123
|
+
return "$code"
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# Fichier qui marque un module actif en échec (contenu : où regarder) ; à côté
|
|
127
|
+
# de l'état, dans son volume : l'état l'affiche à chaque démarrage
|
|
128
|
+
fichier_echec() {
|
|
129
|
+
echo "$ETAT-echec-$1"
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
# Journal du dernier npm (son chemin est à donner en cas d'échec), ou son
|
|
133
|
+
# dossier ; noms horodatés : le dernier dans l'ordre du glob est le plus récent
|
|
134
|
+
dernier_journal_npm() {
|
|
135
|
+
local journal="" f
|
|
136
|
+
for f in "$HOME"/.npm/_logs/*-debug-0.log; do
|
|
137
|
+
if [ -f "$f" ]; then journal="$f"; fi
|
|
138
|
+
done
|
|
139
|
+
echo "${journal:-$HOME/.npm/_logs}"
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# Installe les assistants IA figés, vérifiés par leur --version, 3 essais : npm
|
|
143
|
+
# abandonne en silence un binaire de plateforme non téléchargé (#194)
|
|
144
|
+
installer_ia() {
|
|
145
|
+
local essai
|
|
146
|
+
for essai in 1 2 3; do
|
|
147
|
+
if avec_progression npm install -g --no-fund --no-audit --loglevel=error "${IA_PAQUETS[@]}" >/dev/null &&
|
|
148
|
+
claude --version >/dev/null 2>&1 && opencode --version >/dev/null 2>&1; then
|
|
149
|
+
return 0
|
|
150
|
+
fi
|
|
151
|
+
[ "$essai" -eq 3 ] || echo "devzone : installation des assistants IA incomplète, nouvel essai ($((essai + 1))/3)…" >&2
|
|
152
|
+
done
|
|
153
|
+
return 1
|
|
154
|
+
}
|
|
155
|
+
|
|
109
156
|
appliquer_ia() {
|
|
157
|
+
local journal
|
|
110
158
|
if [ "$1" = on ]; then
|
|
111
|
-
|
|
159
|
+
echo "devzone : installation de Claude Code et opencode (quelques minutes)…"
|
|
160
|
+
if ! installer_ia; then
|
|
161
|
+
journal="$(dernier_journal_npm)"
|
|
162
|
+
echo "journal npm : $journal" >"$(fichier_echec ia)"
|
|
163
|
+
echo "devzone : échec de l'installation de ${IA_PAQUETS[*]} (npm install -g, 3 essais) ; journal npm : $journal ; réessayer : devzone appliquer" >&2
|
|
164
|
+
return 1
|
|
165
|
+
fi
|
|
166
|
+
rm -f "$(fichier_echec ia)"
|
|
167
|
+
echo "devzone : Claude Code et opencode installés"
|
|
112
168
|
# Garde-fou repowarden (hook PreToolUse de Claude Code, plugin opencode) :
|
|
113
169
|
# agent arrêté avant de modifier main/develop, de commiter sans
|
|
114
170
|
# repowarden cc ou de contourner les hooks. Global, dans les volumes
|
|
@@ -122,6 +178,7 @@ appliquer_ia() {
|
|
|
122
178
|
echo "devzone : ia actif : claude (puis /login), opencode auth login"
|
|
123
179
|
else
|
|
124
180
|
npm uninstall -g "${IA_NOMS[@]}" >/dev/null 2>&1 || true
|
|
181
|
+
rm -f "$(fichier_echec ia)"
|
|
125
182
|
echo "devzone : ia désactivé (connexions gardées dans leurs volumes)"
|
|
126
183
|
fi
|
|
127
184
|
}
|
|
@@ -150,6 +207,7 @@ appliquer_repowarden() {
|
|
|
150
207
|
ligne="$(bash "$VERSIONS" --installees 2>/dev/null | awk '$1 == "repowarden"' || true)"
|
|
151
208
|
[ -n "$ligne" ] || return 0
|
|
152
209
|
read -r _ figee installee <<<"$ligne"
|
|
210
|
+
echo "devzone : installation de repowarden $figee…"
|
|
153
211
|
npm install -g "repowarden@$figee" >/dev/null
|
|
154
212
|
repowarden install --global --lang fr
|
|
155
213
|
echo "devzone : repowarden $installee → $figee"
|
|
@@ -210,7 +268,9 @@ etat() {
|
|
|
210
268
|
echo " ⚠ worktree $chemin absent ici (créé hors du conteneur ?) : le gérer de ce côté-là, jamais git worktree prune ici (docs/reference.md, Worktrees git)"
|
|
211
269
|
done < <(worktrees_absents)
|
|
212
270
|
for m in "${MODULES[@]}"; do
|
|
213
|
-
if [ "$(valeur "$m")" = on ]; then
|
|
271
|
+
if [ "$(valeur "$m")" = on ] && [ -f "$(fichier_echec "$m")" ]; then
|
|
272
|
+
printf ' ✖ module %-10s en échec : installation incomplète (%s) : devzone appliquer\n' "$m" "$(cat "$(fichier_echec "$m")")"
|
|
273
|
+
elif [ "$(valeur "$m")" = on ]; then
|
|
214
274
|
printf ' ✔ module %-10s actif : %s\n' "$m" "$(description "$m")"
|
|
215
275
|
else
|
|
216
276
|
printf ' ○ module %-10s facultatif, %s : devzone activer %s\n' "$m" "$(description "$m")" "$m"
|
|
@@ -46,13 +46,16 @@ git config --global url.https://github.com/.insteadOf git@github.com:
|
|
|
46
46
|
|
|
47
47
|
# repowarden, version figée (il installe des hooks git globaux) ; mettre à jour
|
|
48
48
|
# en changeant la version ici, puis Rebuild Container
|
|
49
|
+
echo "devzone : installation de repowarden…"
|
|
49
50
|
npm install -g repowarden@4.12.1
|
|
50
51
|
repowarden install --global --lang fr
|
|
51
52
|
|
|
52
53
|
# Modules facultatifs (assistants IA, Kubernetes) : commande devzone, état
|
|
53
|
-
# gardé dans le volume devzone-config ; installe ce qui est actif
|
|
54
|
+
# gardé dans le volume devzone-config ; installe ce qui est actif. Un module
|
|
55
|
+
# en échec n'arrête pas la création : le conteneur reste utilisable et l'état
|
|
56
|
+
# (devzone, à chaque démarrage) le montre « en échec »
|
|
54
57
|
sudo ln -sf /workspaces/devzone/.devcontainer/devzone /usr/local/bin/devzone
|
|
55
|
-
devzone appliquer
|
|
58
|
+
devzone appliquer || echo "devzone : modules incomplets (détail ci-dessus), réessayer : devzone appliquer" >&2
|
|
56
59
|
|
|
57
60
|
# Ce qui reste à faire (identité git, GitHub, modules) : récapitulatif de
|
|
58
61
|
# devzone, affiché à chaque démarrage (demarrage.sh)
|
package/package.json
CHANGED