web-dev-qa-db-fra.com

Vérifier le répertoire avant de créer un fichier dans la marionnette?

J'essaie de faire une fonction quel répertoire/fichier ne sera créé que lorsque le premier répertoire existe, de ne pas être ignoré à cause de la dépendance échouée.

J'ai essayé ce "Seulement" Seulement "Solution de contournement , mais malheureusement, cela ne fonctionne pas avec ma fonction.

$check_directory = file("/path/to/directory")
if($check_directory != '') {
    file{"/path/to/config":
        ensure  =>  directory,
        mode    =>  0755,
    }
    file{"/path/to/config/a.conf":
        ensure  =>  file,
        mode    =>  0755,
        content =>  template("config_template.conf"),
    }
}

J'ai une erreur:

Error: Is a directory - /path/to/directory

Existe-t-il un moyen de faire une autre déclaration si? Ou n'importe quel paramètre? Merci.

4
skantana

Vous devriez pouvoir simplement utiliser une instruction require dans votre a.conf Ressource de fichier:

file{"/path/to/directory":
    ensure  =>  directory,
    mode    =>  0755,
}

file{"/path/to/config":
    ensure  =>  directory,
    mode    =>  0755,
}
file{"/path/to/config/a.conf":
    ensure  =>  file,
    mode    =>  0755,
    content =>  template("config_template.conf"),
    require => File["/path/to/directory"],
}

Cela garantira que le répertoire sera créé avant le fichier.

3
Sven