Compare commits
	
		
			No commits in common. "10409febe666eb7ba855f2f2ddeddc3bfed61429" and "7bcdaef6503220ac26a889187e3f797494c3d33d" have entirely different histories.
		
	
	
		
			10409febe6
			...
			7bcdaef650
		
	
		
@ -19,8 +19,7 @@ Copier \$1 vers \$2 de façon inconditionnelle
 | 
				
			|||||||
Si \$2 n'est pas spécifié, on assume que \$1 est de la forme '.file.ext'
 | 
					Si \$2 n'est pas spécifié, on assume que \$1 est de la forme '.file.ext'
 | 
				
			||||||
et \$2 vaudra alors 'file'
 | 
					et \$2 vaudra alors 'file'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
si un fichier \${2#.}.local existe (e.g 'file.ext.local'), prendre ce fichier à
 | 
					si un fichier \${2#.}.local existe, prendre ce fichier à la place comme source
 | 
				
			||||||
la place comme source
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Ajouter file au tableau userfiles"
 | 
					Ajouter file au tableau userfiles"
 | 
				
			||||||
function template_copy_replace() {
 | 
					function template_copy_replace() {
 | 
				
			||||||
@ -48,8 +47,7 @@ Copier \$1 vers \$2 si ce fichier n'existe pas déjà
 | 
				
			|||||||
Si \$2 n'est pas spécifié, on assume que \$1 est de la forme '.file.ext'
 | 
					Si \$2 n'est pas spécifié, on assume que \$1 est de la forme '.file.ext'
 | 
				
			||||||
et \$2 vaudra alors 'file'
 | 
					et \$2 vaudra alors 'file'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
si un fichier \${1#.}.local existe (e.g 'file.ext.local'), prendre ce fichier à
 | 
					si un fichier \${2#.}.local existe, prendre ce fichier à la place comme source
 | 
				
			||||||
la place comme source
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Ajouter file au tableau userfiles"
 | 
					Ajouter file au tableau userfiles"
 | 
				
			||||||
function template_copy_missing() {
 | 
					function template_copy_missing() {
 | 
				
			||||||
@ -207,18 +205,6 @@ function template_generate_scripts() {
 | 
				
			|||||||
    #etitle "sedscript" cat "$sedscript"
 | 
					    #etitle "sedscript" cat "$sedscript"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function: _template_can_process "\
 | 
					 | 
				
			||||||
Indiquer si \$1 est un fichier texte, qui peut être traité par
 | 
					 | 
				
			||||||
template_process_userfiles"
 | 
					 | 
				
			||||||
function _template_can_process() {
 | 
					 | 
				
			||||||
    case "$1" in
 | 
					 | 
				
			||||||
    *.png|*.jpg|*.gif|*.bmp) return 1;;
 | 
					 | 
				
			||||||
    *.zip|*.jar|*.war|*.ear) return 1;;
 | 
					 | 
				
			||||||
    *.tar|*.gz|*.tgz|*.bz2|*.tbz2) return 1;;
 | 
					 | 
				
			||||||
    *) return 0;;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function template_process_userfiles() {
 | 
					function template_process_userfiles() {
 | 
				
			||||||
    local awkscript sedscript workfile userfile
 | 
					    local awkscript sedscript workfile userfile
 | 
				
			||||||
    ac_set_tmpfile awkscript
 | 
					    ac_set_tmpfile awkscript
 | 
				
			||||||
@ -227,7 +213,6 @@ function template_process_userfiles() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ac_set_tmpfile workfile
 | 
					    ac_set_tmpfile workfile
 | 
				
			||||||
    for userfile in "${userfiles[@]}"; do
 | 
					    for userfile in "${userfiles[@]}"; do
 | 
				
			||||||
        _template_can_process "$userfile" || continue
 | 
					 | 
				
			||||||
        if cat "$userfile" | awk -f "$awkscript" | sed -rf "$sedscript" >"$workfile"; then
 | 
					        if cat "$userfile" | awk -f "$awkscript" | sed -rf "$sedscript" >"$workfile"; then
 | 
				
			||||||
            if testdiff "$workfile" "$userfile"; then
 | 
					            if testdiff "$workfile" "$userfile"; then
 | 
				
			||||||
                # n'écrire le fichier que s'il a changé
 | 
					                # n'écrire le fichier que s'il a changé
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@
 | 
				
			|||||||
require __DIR__ . "/../vendor/autoload.php";
 | 
					require __DIR__ . "/../vendor/autoload.php";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use nulib\tools\pman\ComposerFile;
 | 
					use nulib\tools\pman\ComposerFile;
 | 
				
			||||||
use nulib\tools\pman\ComposerPmanFile;
 | 
					use nulib\tools\pman\PmanYamlConfigFile;
 | 
				
			||||||
use nulib\ValueException;
 | 
					use nulib\ValueException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$composer = new ComposerFile();
 | 
					$composer = new ComposerFile();
 | 
				
			||||||
 | 
				
			|||||||
@ -3,11 +3,11 @@
 | 
				
			|||||||
require __DIR__ . "/../vendor/autoload.php";
 | 
					require __DIR__ . "/../vendor/autoload.php";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use nulib\tools\pman\ComposerFile;
 | 
					use nulib\tools\pman\ComposerFile;
 | 
				
			||||||
use nulib\tools\pman\ComposerPmanFile;
 | 
					use nulib\tools\pman\PmanYamlConfigFile;
 | 
				
			||||||
use nulib\ValueException;
 | 
					use nulib\ValueException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$composer = new ComposerFile();
 | 
					$composer = new ComposerFile();
 | 
				
			||||||
$config = new ComposerPmanFile();
 | 
					$config = new PmanYamlConfigFile();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ($argc <= 1) {
 | 
					if ($argc <= 1) {
 | 
				
			||||||
  throw new ValueException("Il faut spécifier le profil à sélectionner");
 | 
					  throw new ValueException("Il faut spécifier le profil à sélectionner");
 | 
				
			||||||
 | 
				
			|||||||
@ -15,9 +15,9 @@ class StateException extends LogicException {
 | 
				
			|||||||
    return new static($prefix.$message);
 | 
					    return new static($prefix.$message);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static final function unexpected_state(?string $suffix=null): self {
 | 
					  static final function unexpected_state(?string $prefix=null): self {
 | 
				
			||||||
    $message = "unexpected state";
 | 
					    $message = "unexpected state";
 | 
				
			||||||
    if ($suffix) $suffix = ": $suffix";
 | 
					    if ($prefix) $prefix = "$prefix: ";
 | 
				
			||||||
    return new static($message.$suffix);
 | 
					    return new static($prefix.$message);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -4,15 +4,20 @@ namespace nulib\ref\schema;
 | 
				
			|||||||
class ref_schema {
 | 
					class ref_schema {
 | 
				
			||||||
  /** @var array schéma des natures de schéma */
 | 
					  /** @var array schéma des natures de schéma */
 | 
				
			||||||
  const NATURE_METASCHEMA = [
 | 
					  const NATURE_METASCHEMA = [
 | 
				
			||||||
    0 => ["string", null, "nature du schéma",
 | 
					    "nature" => ["string", null, "nature du schéma",
 | 
				
			||||||
 | 
					      "pkey" => 0,
 | 
				
			||||||
      "allowed_values" => ["scalar", "assoc", "list"],
 | 
					      "allowed_values" => ["scalar", "assoc", "list"],
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "compute_func" => ["?callable", null, "fonction qui calcule les valeurs des champs computed"],
 | 
					    "title" => ["?string", null, "libellé de la valeur"],
 | 
				
			||||||
    "validate_func" => ["?callable", null, "fonction qui vérifie la conformité de l'objet dans son ensemble"],
 | 
					    "required" => ["bool", false, "la valeur est-elle requise?"],
 | 
				
			||||||
 | 
					    "nullable" => ["?bool", null, "la valeur peut-elle être nulle?"],
 | 
				
			||||||
 | 
					    "desc" => ["?content", null, "description de la valeur"],
 | 
				
			||||||
 | 
					    "name" => ["?key", null, "identifiant de la valeur"],
 | 
				
			||||||
 | 
					    "schema" => ["?array", null, "définition du schéma"],
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /** @var array meta-schéma d'une valeur */
 | 
					  /** @var array meta-schema d'un schéma de nature scalaire */
 | 
				
			||||||
  const VALUE_METASCHEMA = [
 | 
					  const SCALAR_METASCHEMA = [
 | 
				
			||||||
    "type" => ["array", null, "types possibles de la valeur", "required" => true],
 | 
					    "type" => ["array", null, "types possibles de la valeur", "required" => true],
 | 
				
			||||||
    "default" => [null, null, "valeur par défaut si la valeur n'existe pas"],
 | 
					    "default" => [null, null, "valeur par défaut si la valeur n'existe pas"],
 | 
				
			||||||
    "title" => ["?string", null, "libellé de la valeur"],
 | 
					    "title" => ["?string", null, "libellé de la valeur"],
 | 
				
			||||||
@ -33,29 +38,22 @@ class ref_schema {
 | 
				
			|||||||
    "name" => ["?string", null, "identifiant de la valeur"],
 | 
					    "name" => ["?string", null, "identifiant de la valeur"],
 | 
				
			||||||
    "pkey" => ["?pkey", null, "chemin de clé de la valeur dans un tableau associatif"],
 | 
					    "pkey" => ["?pkey", null, "chemin de clé de la valeur dans un tableau associatif"],
 | 
				
			||||||
    "header" => ["?string", null, "nom de l'en-tête s'il faut présenter cette donnée dans un tableau"],
 | 
					    "header" => ["?string", null, "nom de l'en-tête s'il faut présenter cette donnée dans un tableau"],
 | 
				
			||||||
    "computed" => ["?bool", null, "ce champ est-il calculé? si oui, il n'est pas demandé en entrée ni validé"],
 | 
					    "composite" => ["?bool", null, "ce champ fait-il partie d'une valeur composite?"],
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const MESSAGES = [
 | 
					  const MESSAGES = [
 | 
				
			||||||
    "missing" => "Vous devez spécifier cette valeur",
 | 
					    "missing" => "{key}: Vous devez spécifier cette valeur",
 | 
				
			||||||
    "unavailable" => "Vous devez spécifier cette valeur",
 | 
					    "unavailable" => "{key}: Vous devez spécifier cette valeur",
 | 
				
			||||||
    "null" => "Cette valeur ne doit pas être nulle",
 | 
					    "null" => "{key}: cette valeur ne doit pas être nulle",
 | 
				
			||||||
    "empty" => "Cette valeur ne doit pas être vide",
 | 
					    "empty" => "{key}: cette valeur ne doit pas être vide",
 | 
				
			||||||
    "invalid" => "Cette valeur est invalide",
 | 
					    "invalid" => "{key}: {orig}: cette valeur est invalide",
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /** @var array clés supplémentaires de schéma de la nature scalaire */
 | 
					  /** @var array meta-schema d'un schéma de nature associative */
 | 
				
			||||||
  const SCALAR_NATURE_METASCHEMA = [
 | 
					  const ASSOC_METASCHEMA = [
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /** @var array clés supplémentaires de schéma de la nature associative */
 | 
					  /** @var array meta-schema d'un schéma de nature liste */
 | 
				
			||||||
  const ASSOC_NATURE_METASCHEMA = [
 | 
					  const LIST_METASCHEMA = [
 | 
				
			||||||
    "ensure_array" => ["bool", false, "faut-il s'assurer que le tableau destination est non nul?"],
 | 
					 | 
				
			||||||
    "ensure_keys" => ["bool", true, "faut-il s'assurer que toutes les clés existent?"],
 | 
					 | 
				
			||||||
    "ensure_order" => ["bool", true, "faut-il s'assurer que les clés soient dans l'ordre?"],
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /** @var array clés supplémentaires de schéma de la nature liste */
 | 
					 | 
				
			||||||
  const LIST_NATURE_METASCHEMA = [
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -77,7 +77,7 @@ class ComposerFile {
 | 
				
			|||||||
    "nulib/php" => "nulib",
 | 
					    "nulib/php" => "nulib",
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function selectProfile(string $profile, ComposerPmanFile $config): void {
 | 
					  function selectProfile(string $profile, PmanYamlConfigFile $config): void {
 | 
				
			||||||
    $config = $config->getProfileConfig($profile);
 | 
					    $config = $config->getProfileConfig($profile);
 | 
				
			||||||
    // corriger les liens
 | 
					    // corriger les liens
 | 
				
			||||||
    $deps = cl::merge(array_keys($config["require"]), array_keys($config["require-dev"]));
 | 
					    $deps = cl::merge(array_keys($config["require"]), array_keys($config["require-dev"]));
 | 
				
			||||||
 | 
				
			|||||||
@ -6,27 +6,9 @@ use nulib\ext\yaml;
 | 
				
			|||||||
use nulib\os\path;
 | 
					use nulib\os\path;
 | 
				
			||||||
use nulib\ValueException;
 | 
					use nulib\ValueException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ComposerPmanFile {
 | 
					class PmanYamlConfigFile {
 | 
				
			||||||
  const NAMES = [".composer.pman", ".pman"];
 | 
					 | 
				
			||||||
  const EXTS = [".yml", ".yaml"];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  function __construct(string $configFile=".", bool $ensureExists=true) {
 | 
					  function __construct(string $configFile=".", bool $ensureExists=true) {
 | 
				
			||||||
    if (is_dir($configFile)) {
 | 
					    if (is_dir($configFile)) $configFile = path::join($configFile, '.pman.yml');
 | 
				
			||||||
      $found = false;
 | 
					 | 
				
			||||||
      foreach (self::NAMES as $name) {
 | 
					 | 
				
			||||||
        foreach (self::EXTS as $ext) {
 | 
					 | 
				
			||||||
          $file = path::join($configFile, "$name$ext");
 | 
					 | 
				
			||||||
          if (file_exists($file)) {
 | 
					 | 
				
			||||||
            $configFile = $file;
 | 
					 | 
				
			||||||
            $found = true;
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (!$found) {
 | 
					 | 
				
			||||||
        $configFile = path::join($configFile, self::NAMES[0].self::EXTS[0]);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if ($ensureExists && !file_exists($configFile)) {
 | 
					    if ($ensureExists && !file_exists($configFile)) {
 | 
				
			||||||
      $message = path::ppath($configFile).": fichier introuvable";
 | 
					      $message = path::ppath($configFile).": fichier introuvable";
 | 
				
			||||||
      throw new ValueException($message);
 | 
					      throw new ValueException($message);
 | 
				
			||||||
							
								
								
									
										72
									
								
								runphp/build
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								runphp/build
									
									
									
									
									
								
							@ -6,7 +6,7 @@ RUNPHP="$MYDIR/runphp"
 | 
				
			|||||||
RUNPHP_STANDALONE=
 | 
					RUNPHP_STANDALONE=
 | 
				
			||||||
PROJDIR=; COMPOSERDIR=; COMPOSERPHAR=; VENDORDIR=; BUILDENV0=; BUILDENV=
 | 
					PROJDIR=; COMPOSERDIR=; COMPOSERPHAR=; VENDORDIR=; BUILDENV0=; BUILDENV=
 | 
				
			||||||
BUILD_IMAGES=(php-apache mariadb10); export BUILD_FLAVOUR=; DIST=; IMAGENAME=
 | 
					BUILD_IMAGES=(php-apache mariadb10); export BUILD_FLAVOUR=; DIST=; IMAGENAME=
 | 
				
			||||||
DISTFILES=(); TEMPLATEFILES=(); VARFILES=()
 | 
					DISTFILES=()
 | 
				
			||||||
source "$RUNPHP" || exit 1
 | 
					source "$RUNPHP" || exit 1
 | 
				
			||||||
source "$PROJDIR/$VENDORDIR/nulib/php/load.sh" || exit 1
 | 
					source "$PROJDIR/$VENDORDIR/nulib/php/load.sh" || exit 1
 | 
				
			||||||
require: template
 | 
					require: template
 | 
				
			||||||
@ -56,59 +56,49 @@ function dcrunning() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function build_check_env() {
 | 
					function build_check_env() {
 | 
				
			||||||
    eval "$(template_locals)"
 | 
					    eval "$(template_locals)"
 | 
				
			||||||
    local updatedenv file name
 | 
					    local updatedenv distfile distname
 | 
				
			||||||
    local -a updatedfiles files
 | 
					    local -a updatedfiles distfiles
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if template_copy_missing "$PROJDIR/$BUILDENV0"; then
 | 
					    if template_copy_missing "$PROJDIR/$BUILDENV0"; then
 | 
				
			||||||
        updated=1
 | 
					        updated=1
 | 
				
			||||||
        updatedenv=1
 | 
					        updatedenv=1
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    for file in "${DISTFILES[@]}"; do
 | 
					    for distfile in "${DISTFILES[@]}"; do
 | 
				
			||||||
        if [ -f "$PROJDIR/$file" ]; then
 | 
					        if [ -f "$PROJDIR/$distfile" ]; then
 | 
				
			||||||
            if template_copy_missing "$PROJDIR/$file"; then
 | 
					            if template_copy_missing "$PROJDIR/$distfile"; then
 | 
				
			||||||
                updated=1
 | 
					                updated=1
 | 
				
			||||||
                setx name=basename -- "$file"
 | 
					                setx distname=basename -- "$distfile"
 | 
				
			||||||
                name="${name#.}"; name="${name%.}"
 | 
					                distname="${distname#.}"; distname="${distname%.dist}"
 | 
				
			||||||
                setx file=dirname -- "$file"
 | 
					                setx distfile=dirname -- "$distfile"
 | 
				
			||||||
                file="$file/$name"
 | 
					                distfile="$distfile/$distname"
 | 
				
			||||||
                updatedfiles+=("$file")
 | 
					                updatedfiles+=("$distfile")
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        elif [ -d "$PROJDIR/$file" ]; then
 | 
					        elif [ -d "$PROJDIR/$distfile" ]; then
 | 
				
			||||||
            local dir="$PROJDIR/$file"
 | 
					            local distdir="$PROJDIR/$distfile"
 | 
				
			||||||
            setx -a files=find "$dir" -type f -name ".*.dist"
 | 
					            setx -a distfiles=find "$distdir" -type f -name ".*.dist"
 | 
				
			||||||
            for file in "${files[@]}"; do
 | 
					            for distfile in "${distfiles[@]}"; do
 | 
				
			||||||
                if template_copy_missing "$file"; then
 | 
					                if template_copy_missing "$distfile"; then
 | 
				
			||||||
                    updated=1
 | 
					                    updated=1
 | 
				
			||||||
                    setx name=basename -- "$file"
 | 
					                    setx distname=basename -- "$distfile"
 | 
				
			||||||
                    name="${name#.}"; name="${name%.}"
 | 
					                    distname="${distname#.}"; distname="${distname%.dist}"
 | 
				
			||||||
                    setx file=dirname -- "$file"
 | 
					                    # ignorer les fichiers binaires
 | 
				
			||||||
                    file="$file/$name"
 | 
					                    #XXX remplacer par un code plus robuste, peut-être à
 | 
				
			||||||
                    updatedfiles+=("${file#$PROJDIR/}")
 | 
					                    # intégrer directement dans template:
 | 
				
			||||||
 | 
					                    case "$distname" in
 | 
				
			||||||
 | 
					                    *.png|*.jpg) ;;
 | 
				
			||||||
 | 
					                    *)
 | 
				
			||||||
 | 
					                        setx distfile=dirname -- "$distfile"
 | 
				
			||||||
 | 
					                        distfile="$distfile/$distname"
 | 
				
			||||||
 | 
					                        updatedfiles+=("${distfile#$PROJDIR/}")
 | 
				
			||||||
 | 
					                        ;;
 | 
				
			||||||
 | 
					                    esac
 | 
				
			||||||
                fi
 | 
					                fi
 | 
				
			||||||
            done
 | 
					            done
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            ewarn "$file: fichier dist introuvable"
 | 
					            ewarn "$distfile: fichier introuvable"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
    for file in "${TEMPLATEFILES[@]}"; do
 | 
					    template_process_userfiles
 | 
				
			||||||
        if [ -f "$PROJDIR/$file" ]; then
 | 
					 | 
				
			||||||
            template_copy_replace "$PROJDIR/$file"
 | 
					 | 
				
			||||||
        elif [ -d "$PROJDIR/$file" ]; then
 | 
					 | 
				
			||||||
            local dir="$PROJDIR/$file"
 | 
					 | 
				
			||||||
            setx -a files=find "$dir" -type f -name ".*.template"
 | 
					 | 
				
			||||||
            for file in "${files[@]}"; do
 | 
					 | 
				
			||||||
                template_copy_replace "$file"
 | 
					 | 
				
			||||||
            done
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            ewarn "$file: fichier template introuvable"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    local -a varfiles
 | 
					 | 
				
			||||||
    for file in "${VARFILES[@]}"; do
 | 
					 | 
				
			||||||
        varfiles+=("$PROJDIR/$file")
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    template_process_userfiles "${varfiles[@]}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ -n "$updated" ]; then
 | 
					    if [ -n "$updated" ]; then
 | 
				
			||||||
        enote "IMPORTANT: vous devez paramétrer certains fichiers avant de pouvoir construire les images"
 | 
					        enote "IMPORTANT: vous devez paramétrer certains fichiers avant de pouvoir construire les images"
 | 
				
			||||||
 | 
				
			|||||||
@ -47,27 +47,14 @@ DIST=
 | 
				
			|||||||
# Nom de base de l'image (sans le registry), e.g prefix/
 | 
					# Nom de base de l'image (sans le registry), e.g prefix/
 | 
				
			||||||
IMAGENAME=
 | 
					IMAGENAME=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Fichiers .dist et .template
 | 
					## Fichiers .dist
 | 
				
			||||||
# Lors du build, les fichiers de la forme .name.dist sont copiés vers un
 | 
					## Lors du build, les fichiers de la forme .name.dist sont copiés vers un
 | 
				
			||||||
# fichier name sauf s'il existe déjà. Si un fichier name.dist.local existe, il
 | 
					## fichier name sauf s'il existe déjà
 | 
				
			||||||
# est utilisé à la place de .name.dist
 | 
					 | 
				
			||||||
# Les fichiers de la forme .name.template sont copiés *systématiquement* vers
 | 
					 | 
				
			||||||
# le fichier name. Si un fichier name.template.local existe, il est utilisé à
 | 
					 | 
				
			||||||
# la place de .name.template
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Liste de fichiers (ou de répertoires à considérer). Pour chaque répertoire,
 | 
					# Liste de fichiers (ou de répertoirs à considérer). Pour chaque répertoire, les
 | 
				
			||||||
# les fichiers .*.dist dans l'arborescence du répertoire sont recherchés
 | 
					# fichiers .*.dist dans l'arborescence du répertoire sont recherchés
 | 
				
			||||||
DISTFILES=()
 | 
					DISTFILES=()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Liste de fichiers (ou de répertoires à considérer). Pour chaque répertoire,
 | 
					 | 
				
			||||||
# les fichiers .*.template dans l'arborescence du répertoire sont recherchés
 | 
					 | 
				
			||||||
TEMPLATEFILES=()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Fichiers contenant les valeurs des variables utilisées pour l'interpolation
 | 
					 | 
				
			||||||
# des fichiers dist et template. Seules les variables définies dans ces fichiers
 | 
					 | 
				
			||||||
# sont interpolées.
 | 
					 | 
				
			||||||
VARFILES=()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#EOF:runphp.userconf:ne pas modifier cette ligne
 | 
					#EOF:runphp.userconf:ne pas modifier cette ligne
 | 
				
			||||||
################################################################################
 | 
					################################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user