# Lua portage sous linux

**URL:** <https://www.debian-fr.org/t/lua-portage-sous-linux/35122>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 3:55 UTC](https://www.debian-fr.org/t/lua-portage-sous-linux/35122 "2016-02-21T03:55:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cybab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/cybab/32/3896_2.png) [@Cybab](https://www.debian-fr.org/u/Cybab)\
**Post date:** [Février 21, 2016, 3:55 UTC](https://www.debian-fr.org/t/lua-portage-sous-linux/35122/1 "2016-02-21T03:55:16Z")

</div>

Salut à tous,

J’ai un petit souci avec un script lua et ne connaissant pas ce langage je vous demande un petit coup de main 🙂  
Ce script qui me pose problème est d’un mod développé pour windows, la plateforme faisant fonctionner ce mod est porté pour linux mais le mod étant développé pour windows me rend quelques incompatibilités une fois lancé dans mon bash ;'  
Voici le morceau du script qui me pose problème :

`local Load = {{Main.Root.ChatCommands},{Main.Root.LevelSetup},{Main.Root.ServerEvents}};
		for i = 1, #Load, 1 do
 			local Directory = string.gsub(Load[i][1], "/", [[\]]);
			os.execute('cd '..Directory..' && dir /a:-d /s /b > "__Temp.txt"');
			local File = io.open(Load[i][1].."/__Temp.txt","r");
			if (File) then
				for line in (File:lines()) do
					local NewDir = string.gsub(line, [[\]], "/");
					if (string.lower(string.sub(NewDir, -3))=="lua") then
						LoadFile(NewDir);
					end
				end
				File:close();
				os.execute('cd '..Directory..' && del "__Temp.txt"');
			end`

sh me renvoie un truc du genre ne peut pas ouvrir le dossier Chat\_commands, et je crois qu’il y as un rapport avec "dir /a: -d /s /b"  
Pensez-vous que l’erreur est dans ce morceau ? Merci 🙂

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 3:55 UTC](https://www.debian-fr.org/t/lua-portage-sous-linux/35122/2 "2016-02-21T03:55:17Z")

</div>

Bon je te préviens, j’ai jamais fait de LUA\*… mais c’est assez facile à comprendre :

`Load = tableau de chaines
for i in [1 .. taille(Load)] :
  Directory = remplacer / par \ dans Load[i][1] (séparateurs de chemin propres à Windows)
  cd Directory && lister uniquement les fichiers > temp.txt
  ouvrir temp.txt :
    pour chaque *ligne* du fichier :
      NewDir = remplacer \ par / dans la *ligne* (la liste des fichiers contient des \ qu'il faut retransformer en séparateurs supportés par LUA, à savoir /)
      si le nom de fichier finit par "lua" :
        charger le fichier dont le nom est contenu dans la *ligne*
  cd Directory && supprimer temp.txt`

Plusieurs endroits donc où intervenir :

- les deux remplacements des séparateurs de chemin ne sont pas nécessaires
- transformer le dir en ls (avec les bonnes options pour n’afficher que les fichiers, un nom de fichier par ligne – ça serait pê plus facile avec find)
- transformer le del en rm

Voir également à quoi correspondent les options /s et /b de dir pour avoir le comportement équivalent avec ls/find.

\* Edit : après réflexion, en fait si… y’a longtemps, je sais plus du tout pourquoi, j’ai tout oublié depuis, mais j’ai écrit du LUA une fois… ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 3:55 UTC](https://www.debian-fr.org/t/lua-portage-sous-linux/35122/3 "2016-02-21T03:55:20Z")

</div>

Langage utilisé pour awesome, conky et luakit pour les plus connus ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel")

---

<div class="post-metadata">

**Author:** ![Cybab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/cybab/32/3896_2.png) [@Cybab](https://www.debian-fr.org/u/Cybab)\
**Post date:** [Février 21, 2016, 4:01 UTC](https://www.debian-fr.org/t/lua-portage-sous-linux/35122/4 "2016-02-21T04:01:03Z")

</div>

Merci bien, au final je dois le réécrire de zéro car ce sera une bonne excuse pour me mettre au lua ;’)  
Je vous tiendrais au courant quand je me lancerais (pour l’instant j’évite de croiser le lanceur de mon éditeur :p)
