diff --git a/rootfs overrides/usr/bin/sheebr.js b/rootfs overrides/usr/bin/sheebr.js index 367c7ed..5a712ee 100644 --- a/rootfs overrides/usr/bin/sheebr.js +++ b/rootfs overrides/usr/bin/sheebr.js @@ -6,11 +6,12 @@ let environment = require('../lib/sheebr/environment') let aliases = require("../lib/sheebr/aliases") let { spawn } = require('child_process') -//utiliser ce code au lieuxc de execSync permet d'afficher le stdout au fur et a mesure ce qui fait qu'on a les logs quand une application throw une erreur +//utiliser ce code au lieux de execSync permet d'afficher le stdout au fur et a mesure ce qui fait qu'on a les logs quand une application throw une erreur async function spawnAndWait(cmd, option) { const child = spawn(cmd, option) child.stdout.pipe(process.stdout) + child.stderr.pipe(process.stderr) process.stdin.pipe(child.stdin) await new Promise((res, rej) => { @@ -18,6 +19,7 @@ async function spawnAndWait(cmd, option) { res() }) }) + process.stdin.unpipe(child.stdin) } @@ -28,8 +30,8 @@ start() async function start(){ while(true){ const input = await getline("sheebr> "); - if(input == "exit") break; - if(input == "") continue; + if(input === "exit") break; + if(!input) continue; else await evaluate(input); } } diff --git a/rootfs overrides/usr/lib/sheebr/utils.js b/rootfs overrides/usr/lib/sheebr/utils.js index da82cb8..15d5141 100644 --- a/rootfs overrides/usr/lib/sheebr/utils.js +++ b/rootfs overrides/usr/lib/sheebr/utils.js @@ -1,6 +1,12 @@ +//@ts-check + +/** + * @param {string} str + * @returns { Promise } + */ async function getline(str) { process.stdout.write(str) - process.stdin.resume(); + process.stdin.resume() process.stdin.setEncoding('utf8') let line = "" return new Promise((res, rej) => { @@ -19,7 +25,7 @@ async function getline(str) { } function isAlpha(str){ - return /^[a-zA-Z]*$/.test(str); + return /^[a-zA-Z]*$/.test(str) }