Listage des éléments d'Apertium en ligne de commandes

From Apertium
Jump to navigation Jump to search

In English

Changement du mode d'implantation d'Apertium

A l'origine, ou en tout cas pendant une dizaine d'années, le projet Apertium était archivé sur sourceforge grâce au logiciel subversion.

Le projet était alors organisé sous la forme d'une arborescence :

  • Le répertoire apertium du dépôt était composé exclusivement de sous-répertoires appelés branches.
  • Chaque branche comportait plusieurs sous-répertoires dont chacun contenait l'un des trois éléments suivants :
    • des logiciels du projet Apertium,
    • une paire de langues,
    • les fichiers de référence d'un langage.

Les paires de langues, pouvaient être implantées dans 4 répertoires distincts (incubator, nursery, staging et trunk) en fonction de leur état d'avancement.

Dans l'implantation actuelle d'Apertium, tous les éléments du projet sont directement implantés dans un sous-répertoire de la racine "apertium" (https://github.com/apertium/) et les branches, qui correspondaient aux sous-répertoires de premier niveau :

  • apertium-incubator
  • apertium-nursery
  • apertium-staging
  • apertium-trunk
  • apertium-languages
  • apertium-tools

contient seulement une liste d'éléments du projet.

Listage d'une branche (liste d'éléments) du projet

Pour obtenir la liste des éléments d'une branche, il suffit de récupérer la page web :

https://github.com/apertium/apertium-<nom_branche>/blob/master/.gitmodules

et d'en extraire soit les lignes contenant "submodule" , soit les lignes contenant "path ="

Ensuite, il suffit de ne conserver ques les noms d'éléments du projet dans les lignes récupérées.

Exemple de code permettant de récupérer les données des lignes contenant "path =" :

#!/bin/sh
wget -q https://github.com/apertium/apertium-$1/blob/master/.gitmodules
fgrep "path =" .gitmodules | sed "s/.*path = // s/<\/td>//" | sort
rm .gitmodules*

Exemple d'appel (en supposant que la commande s'appelle listebranche) :

listebranche trunk

Date de dernière modification d'un élément du projet (méthode triviale)

Cette méthode consiste aussi à récupérer une information dans une page web. Il s'agit de la page :

https://api.github.com/repos/apertium/<nom_élément>

On récupèrera la date et l'heure qui figure dans le ligne qui contient "pushed_at"

Exemple de code :

#!/bin/sh
wget -q https://api.github.com/repos/apertium/$1
fgrep "pushed_at" $1 | sed "s/.*: \"// s/T/ / s/Z.*//"
rm $1

Ce système fonctionne bien avec les éléments du projet Apertium modifiés récemment. Toutefois, pour les autres éléments, on ne trouve jamais de date antérieure à mars 2018. En effet, c'est en mars 2018 que le projet Apertium a été tranféré de sourceforge à github.

Pour les éléments qui n'ont pas été modifiés depuis longtemps, il est possible d'utiliser la commande svn list et de supprimer les références aux fichiers du dépot git (ils commencent par un . ) avant de chercher le plus récemment modifié.

Listage des fichiers et répertoires d'un élément du projet

Date de dernière modification d'un élément du projet (avec svn)

Solution avec svn list -v

Solution avec svn list --xml