État des Worktrees
Inspectez les worktrees Liferay et les ports et bases de données qu'ils sont configurés pour utiliser. La skill ne modifie jamais l'état.
Déterminer l'Action
Analysez ${ARGUMENTS} et le contexte de conversation :
- "list" ou l'utilisateur demande quels worktrees existent ou ce qui s'exécute → Lister Tous
- "status" ou l'utilisateur demande quels ports un worktree utilise → Vérifier l'État
- Aucun argument → par défaut, Lister Tous
Valeurs Par Défaut des Ports
L'offset 0 est réservé au worktree principal. Tous les ports se décalent du même offset N : port = default + N.
| Service | Par défaut | Localisation de la Config |
|---|---|---|
| Arquillian | 32763 | <bundles>/osgi/configs/...ArquillianConnector.config |
| DataGuard | 42763 | <bundles>/osgi/configs/...DataGuardConnector.config |
| Elasticsearch Sidecar HTTP | 9201 | <bundles>/osgi/configs/...ElasticsearchConfiguration.config |
| Elasticsearch Transport | 9301 | <bundles>/osgi/configs/...ElasticsearchConfiguration.config |
| Glowroot | 4000 | <bundles>/glowroot/admin.json |
| HTTPS Redirect | 8443 | <tomcat>/conf/server.xml |
| JPDA Debug | 8000 | <tomcat>/bin/setenv.sh |
| OSGi Console | 11311 | <tomcat>/webapps/ROOT/WEB-INF/classes/portal-developer.properties |
| Tomcat AJP | 8009 | <tomcat>/conf/server.xml |
| Tomcat HTTP | 8080 | <tomcat>/conf/server.xml |
| Tomcat Shutdown | 8005 | <tomcat>/conf/server.xml |
Nommage des Bases de Données
Le nom de la base de données est dérivé du nom du répertoire du worktree, et non de l'offset :
liferay-portal-LPD-12345 → lportal_lpd_12345
liferay-portal-hotfix → lportal_hotfix
liferay-portal → lportal (main)
Appliquez cette règle : supprimez le préfixe liferay-portal-, convertissez en minuscules, remplacez les séquences non alphanumériques par _, réduisez les _ consécutifs, tronquez à 56 caractères, puis ajoutez le préfixe lportal_.
Lister Tous
Affiche un tableau récapitulatif de chaque worktree Git avec son port HTTP, son statut d'exécution, son offset et sa base de données.
-
Exécutez
git worktree list --porcelainpour énumérer tous les worktrees. -
Pour chaque worktree, résolvez
<bundles>en lisantapp.server.parent.dirdepuisapp.server.${USER}.propertiesà la racine du worktree (retour àapp.server.propertiesen cas d'absence). Remplacez${project.dir}par le chemin du worktree. -
Lisez
<bundles>/.worktree-port-offsetpour obtenir l'offset, puis dérivez le port HTTP et le nom de la base de données. -
Détectez le statut d'exécution en comparant
-Dcatalina.baseavec le répertoire<tomcat>de chaque worktree. Utilisez la correspondance de processus, pas le scanning de ports — le scanning de ports ne peut pas distinguer quel Tomcat possède quel port.ps -eo args | grep --only-matching "\-Dcatalina\.base=[^ ]*" | sed "s/-Dcatalina.base=//"
Rendez la sortie comme ceci :
Worktree Port Status Offset Database
liferay-portal - NO TOMCAT (none) -
liferay-portal-LPD-00000 8081 RUNNING 1 lportal_lpd_00000
liferay-portal-LPD-12345 8082 STOPPED 2 lportal_lpd_12345
Vérifier l'État
Lisez <bundles>/.worktree-port-offset pour le worktree courant et affichez le tableau complet des ports plus le nom de la base de données dérivée. Ne faites aucune modification.