Mirmo Dynamics

Si tu kiffes pas reunoi, t'écoutes pas et puis c'est tout.

To content | To menu | To search

Keyword - cli

Entries feed - Comments feed

Sunday 13 August 2006

Liste de fichiers avec grep

Quand on cherche à récupérer une liste de fichiers contenant un motif particulier sous UNIX, on peut, quand on est une grosse brute comme moi, utiliser un mix des commandes grep, cut et uniq:

grep -r motif /emplacement/des/fichiers/ | cut -d : -f 1 | uniq

Le truc, c'est qu'il existe une option de grep qui remplace avantageusement l'appel a cut:

grep -rl motif /emplacement/des/fichiers | uniq

Je ne sais pas si l'option -l traite les doublons, a vérifier.

Tuesday 25 July 2006

Entry has unexpectedly changed special status

Aussi connue sous le nom de L'entrée a changé de statut spécial de façon inattendue si vous avez le malheur d'avoir une machine en fr_FR, cette erreur subversion est pour le moins windowsesque, puisqu'elle n'explicite en rien (a première vue du moins) le problème rencontré. Je suppose qu'il peut intervenir dans plusieurs cas, mais dans le mien, j'avais tout simplement changé le status d'un fichier symlink en vrai fichier :-) Manip simple pour réparer (disons que le fichier s'appelle index.php et qu'il était un lien vers blog.php):

$ mv index.php index.php.new
$ ln -s blog.php index.php
$ svn rm index.php
$ mv index.php.new index.php
$ svn add index.php

Et voilà, vous pouvez maintenant commettre (oh oh oh) votre working copy.

Monday 29 May 2006

php_sapi_name, pour des includes dynamiques ?

Tout a l'heure je me suis dis que j'aurai bien voulu faire un include en fonction du SAPI dans lequel un script s'execute. Comme PHP est (presque) bien fait, il existe la fonction php_sapi_name qui retourne le nom du SAPI courant. Ce qui nous permet de faire quelque chose comme:

$sapi_include = dirname(__FILE__) . '/sapi/'.php_sapi_name().'.php';
$sapi_default = dirname(__FILE__) . '/sapi/default.php';
 
if (file_exists($sapi_include)) {
	require_once $sapi_include;
} else if (file_exists($sapi_default)) {
	require_once $sapi_default;
}

C'est pas très joli, mais ça fonctionne. Le gros avantage, c'est qu'on a des includes spécifiques au SAPI, et donc on aura par exemple, dans sapi/apache2handler.php:

header('Content-Type: text/html; charset=ISO-8859-15');
require_once 'libraries/Template.php';
session_start();

et dans sapi/cli.php:

Var_Dump::displayInit(array('display_mode' => 'text'));

Le problème, résolu par l'utilisation de sapi/default.php, était que faire un fichier par SAPI possible serait fastidieux (il faut connaitre le nom de tous les SAPI disponibles (bon ok c'est disponible ici mais cette liste n'a rien d'officiel) puis faire un fichier pour chaque.

Maintenant la question que je me (et vous) pose, c'est: y'a-t'il des effets secondaires que je n'aurai pas encore remarqué ?

Saturday 5 March 2005

Faire du CLI en PHP

Souvent les gens ne voient PHP que comme un langage de script orienté web. Même si il est vrai que c'est son but premier, ce n'est pas la seule chose que PHP peut faire. Penchons nous un peu sur l'utilisation de PHP en CLI, qui permet d'utiliser PHP comme un langage de script classique. Nous utiliserons pour se faire un système linux (ubuntu pour être précis) avec un binaire php-cli déjà installé.

Continue reading...