Module Lua lfs
Le module lfs (Lua File System) permet de gérer le système de fichiers local.
Import
Pour importer le module en Lua :
Configuration YAML
Le module lfs est disponible par défaut et ne nécessite aucune configuration dans le fichier YAML de l'agent.
API Lua
Liste des fonctions
| Fonction | Signature Lua | Rôle | Retour (succès) | Retour (échec) |
|---|---|---|---|---|
attributes |
attr, err = lfs.attributes(path[, aname]) |
Récupère les attributs d'un fichier. | table/value, nil |
nil, "msg" |
chdir |
bool, err = lfs.chdir(path) |
Change le répertoire courant. | true, nil |
nil, "msg" |
currentdir |
path, err = lfs.currentdir() |
Retourne le répertoire courant. | string, nil |
nil, "msg" |
dir |
iter = lfs.dir(path) |
Itère sur un répertoire. | iterator |
– |
mkdir |
bool, err = lfs.mkdir(path) |
Crée un répertoire. | true, nil |
nil, "msg" |
rmdir |
bool, err = lfs.rmdir(path) |
Supprime un répertoire. | true, nil |
nil, "msg" |
touch |
bool, err = lfs.touch(path[, atime[, mtime]]) |
Modifie les timestamps. | true, nil |
nil, "msg" |
lfs.attributes(path[, aname])
Récupère les attributs d'un fichier ou répertoire.
- Paramètres :
path(string) : Chemin du fichier ou répertoire.-
aname(string, optionnel) : Nom d'un attribut spécifique à retourner. -
Retour :
- Une table contenant les attributs (ou la valeur d'un attribut si
anameest spécifié). nil, "<message d'erreur>"en cas d'échec.
Attributs disponibles : dev, ino, mode, nlink, uid, gid, rdev, access, modification, change, size, blocks, blksize.
lfs.dir(path)
Retourne un itérateur pour parcourir un répertoire.
- Paramètres :
-
path(string) : Chemin du répertoire à parcourir. -
Retour :
- Un itérateur Lua.
lfs.mkdir(path) / lfs.rmdir(path)
Crée ou supprime un répertoire.
- Paramètres :
-
path(string) : Chemin du répertoire. -
Retour :
true, nilen cas de succès.nil, "<message d'erreur>"en cas d'échec.
lfs.currentdir() / lfs.chdir(path)
Retourne ou change le répertoire de travail courant.
Exemples d'utilisation Lua
L'exemple suivant itère sur un répertoire et liste récursivement les attributs de chaque fichier à l'intérieur.
local lfs = require("lfs")
function attrdir (path)
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then
local f = path..'/'..file
print("\t "..f)
local attr = lfs.attributes(f)
assert (type(attr) == "table")
if attr.mode == "directory" then
attrdir (f)
else
for name, value in pairs(attr) do
print (name, value)
end
end
end
end
end
attrdir (".")
Champs Lua associés
lfs.name: Nom de l'instance (identique au champnamesi configuré).lfs.type: Type du module ("lfs").