For various unfortunate reasons, part of my build requires root privileges. I'm trying to use sudo for this:
cmd_ "sudo other_script.sh" [input] [output]
However, presumably because of how Shake handles console input/output, I cannot actually enter my password when sudo runs. I have tried passing WithStderr False to cmd_, as well as setting shakeLineBuffering=False, to no avail.
What is the correct way to allow a command to prompt for user input? If such a thing does not exist, is there another good way to do something similar?
The setting you are looking for is
InheritStdinwhich ensures that the standard input is given to the process, so you can actually type in the password. You might also need to setEchoStderrorEchoStdoutso you can see the password prompt.Alternatively, you don't have to use
cmd. Within Shake,cmdis optimised for an ergonomic way of running commands with tight integration. But it's easy enough to use the defaultSystem.Processmodule if you need more control, for example: