fix: ensure cursor is hidden again after interactive command

This commit is contained in:
Alexander Gehrke 2024-05-22 03:44:40 +02:00
parent d6e24a2499
commit 0bcc8bc656

View file

@ -97,7 +97,11 @@ object TypedCommand:
c => runProcess(Vector(shell, "-c", c.mkString(" "))) c => runProcess(Vector(shell, "-c", c.mkString(" ")))
def runInteractive(using cwd: Path): Vector[String] => String = def runInteractive(using cwd: Path): Vector[String] => String =
c => { os.proc(c).call(stdin = os.Inherit, stdout = os.Inherit, stderr = os.Inherit, cwd = cwd); "" } c =>
Terminal.showCursor()
os.proc(c).call(stdin = os.Inherit, stdout = os.Inherit, stderr = os.Inherit, cwd = cwd)
Terminal.hideCursor()
""
def apply(cmd: String*)(using Path): TypedCommand[Vector[String]] = def apply(cmd: String*)(using Path): TypedCommand[Vector[String]] =
TypedCommand(run, cmd.mkString(" "), cmd.toVector) TypedCommand(run, cmd.mkString(" "), cmd.toVector)
@ -114,6 +118,9 @@ object TypedCommand:
def interactive(cmd: String*)(using Path): TypedCommand[Vector[String]] = def interactive(cmd: String*)(using Path): TypedCommand[Vector[String]] =
TypedCommand(runInteractive, cmd.mkString(" "), cmd.toVector) TypedCommand(runInteractive, cmd.mkString(" "), cmd.toVector)
def interactiveUntyped(cmd: String*)(using Path): TypedCommand[Vector[String]] =
TypedCommand(runInteractive, cmd.mkString(" "), cmd.toVector, cmdIsHidden = true, outputIsHidden = false)
def untyped(cmd: String*)(using Path): TypedCommand[Vector[String]] = def untyped(cmd: String*)(using Path): TypedCommand[Vector[String]] =
TypedCommand(exec = run, display = "", cmd.toVector, cmdIsHidden = true, outputIsHidden = false) TypedCommand(exec = run, display = "", cmd.toVector, cmdIsHidden = true, outputIsHidden = false)
end TypedCommand end TypedCommand