Handle scriptum.lua line endings and loading correctly on macOS#1
Handle scriptum.lua line endings and loading correctly on macOS#1Copilot wants to merge 3 commits into
scriptum.lua line endings and loading correctly on macOS#1Conversation
Agent-Logs-Url: https://github.com/smardine/ConsulScriptum/sessions/86883894-b8d7-43c3-a1ca-bff06000acee Co-authored-by: smardine <13467840+smardine@users.noreply.github.com>
scriptum.lua line endings by OS
|
@copilot , il y a encore une erreur : macos_scriptum.lua.txt Voila deux fichiers scriptum.lua, j'ai du les renommer en .txt pour pouvoir les uploader. Lorsque je lance le jeu sous mac, voici les scenario : avec LF comme terminateur dans ce fichier et consul.scriptum.txt: je vois sciptum dans la console mais quand je clique dessus, j'ai l'erreur : Je me demande si le probleme n'est pas l'ouverture du fichier scriptum.lua sur mac (comme j'ai deja fait la modif dans console, verifie que c'est bien consul.io_open qui est utilisé pour ouvrir ce fichier lors du clic sur le nom du script |
Agent-Logs-Url: https://github.com/smardine/ConsulScriptum/sessions/3444523f-14d5-4b9e-a318-17132e8cf951 Co-authored-by: smardine <13467840+smardine@users.noreply.github.com>
Corrigé dans |
scriptum.lua line endings by OSscriptum.lua line endings and loading correctly on macOS
consul.scriptum.setupcreatedscriptum.luain text mode, leaving newline conversion to Lua/runtime behavior. This change makes line endings explicit so Windows keeps CRLF output while macOS writes LF output, and also fixes macOS loading/execution issues caused by mixed line endings and directdofileusage.What changed
package.config.\n, then rewrite it with the platform-specific line ending.scriptum.luain binary mode to avoid implicit newline conversion during file creation.consul.scriptum, soLF,CRLF, andCRentries are all accepted.scriptumentries by opening them throughconsul.io_open(..., "rb"), normalizing line endings, and loading them withloadstringinstead of callingdofiledirectly.Behavior
\) → generatedscriptum.luauses\r\n/) → generatedscriptum.luauses\nconsul.scriptumis parsed correctly on macOS regardless of whether it usesLF,CRLF, orCRscriptum.luais opened through the macOS-awareconsul.io_openpath before executionUpdated write path
Scope
src/consul/consul.lua, covering:scriptum.luacreationconsul.scriptumline parsingscriptum.luafile loading/execution on clickOriginal prompt
Contexte
Dans le fichier
src/consul/consul.lua, la fonctionconsul.scriptum.setupcrée le fichierscriptum.lualors du premier démarrage s'il n'existe pas encore.Actuellement, le fichier est écrit en mode texte (
"w") avec des\n, ce qui laisse Lua gérer automatiquement les fins de ligne. On souhaite un contrôle explicite selon l'OS :\r\n(CRLF) — comportement actuel à conserver\n(LF) — conforme iOS/macOSModification à apporter
Dans
src/consul/consul.lua, dans la fonctionconsul.scriptum.setup, remplacer le bloc d'écriture deconsul.scriptum.path_example:Par :
Résumé du comportement attendu
package.config:sub(1,1)line_ending\\r\n/\nAucune autre modification ne doit être apportée au fichier.
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Au premier démarrage du pack, un fichier scriptum.lua est créé si il n'existe pas.
J'ai besoin que si le pack s'execute depuis windows il soit créer comme actuellement, mais que si le pack s'execute sur macos, le terminateur de ligne soit conforme a ios
Assistant: Laissez-moi d'abord explorer le dépôt pour comprendre la structure actuelle.
Assistant: Le fichier de logging n'est pas celui que je cherche. Laissez-moi chercher directement le code de création de
scriptum.lua.Assistant: Je n'ai pas encore trouvé le code exact qui crée
scriptum.lua. Laissez-moi chercher directement dans les fichiers liés àscriptum.User: C'est dans le fichier @consul.lua, cherche exemple_script
Assistant: J'ai trouvé le code. La création de
scriptum.luase fait dans la fonctionsetupdeconsul.scriptum, vers la ligne ~2856 deconsul.lua.Voici la section concernée :
Et
example_scriptest une string multiligne[[ ... ]]avec des\n.Le problème
En mode texte (
"w"), Lua fait automatiquement la conversion :\ndevient\r\n✅\nreste\n✅ (c'est déjà le comportement conforme)Cependant, si vous voulez contrôle explicite selon la plateforme (pour garantir le comportement quelle que soit la configuration), la bonne approche est d'ouvrir en mode binaire (
"wb") et d'injecter manuellement le bon terminateur de ligne.Solution proposée
Ajoutez une détection de l'OS via
package.config(le séparateur de chemin est\sur Windows,/sur macOS/Linux), puis adaptez les terminateurs :Ce que ça fait
package.config:sub(1,1)line_ending\\r\n/\nLe
:gsub("\r\n", "\n"):gsub("\n", line_ending)normalise d'abord toutes les fins de ligne en\n, puis applique le bon terminateur — ce qui évite les doublons\r\r\nsi la string source contenait déjà des\r\n.Voulez-vous que je crée une PR avec cette modification directement dans
consul.lua?User: Fait une pr qui pointe vers ma branche macos-support
Assistant: L'agent n'a pas retourné de résultat. Je vais effectuer la modification directement.
Assistant: Je ne peux pas directement créer la pull request car la configuration de votre dépôt ne permet pas l'accès à l'agent de modification. Vous pouvez cependant effectuer ces étapes manuellement ou ajuster la configuration et me...
This pull request was created from Copilot chat.