there has been much discussion in the past about programs that modify their behaviour depending on what stdout is; http://harmful.cat-v.org/cat-v/unix_prog_design.pdf
i do to want to start a war, just suggest a different approach is available. my suggestion would be to always expect a password from standard input and to do document this, suggesting, for non-interactive use people could do something like: echo password | application using environment variables or passing passwords on the command line are rather leaky. -Steve On Friday, 9 June 2023 at 00:52:58 UTC+1 Rich wrote: > Thank you Cris and Kurtis -- For this project I am going with the switch > option -- but I have other programs that I am going to replace the > os.Getpid and os.Getppid trick with go-isatty. > > > > On Thursday, June 8, 2023 at 3:22:29 PM UTC-4 Chris Burkert wrote: > >> Hi, there are cases when this does not work. I tend to use a flag like >> -batch or -noninteractive to trigger the correct behavior from within >> scripts. Less magic, more control. >> >> Rich <rma...@gmail.com> schrieb am Do. 8. Juni 2023 um 20:19: >> >>> Hi, >>> >>> I have a program I am writing that stops and asks the user for input, in >>> this case it's a passphrase used to encrypt output. >>> >>> I want the program to also be able to be used in a script, and if in a >>> script use a predefined value as the passphrase. What I'd like to know is >>> how to detect if running in a script or not. I've tried something like >>> this: >>> runPid := os.Getpid() >>> parPid := os.Getppid() >>> val := runPid - parPid //normally I check if runPid is > parPid in my >>> code. >>> if val < 20 { >>> fmt.Println("Not running in a script") >>> } >>> This works, but only if the script ran quickly. Wondering if there is a >>> better way to do this? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golang-nuts...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/golang-nuts/c8ae1be5-5a6b-45af-9249-ccdb02283d97n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/golang-nuts/c8ae1be5-5a6b-45af-9249-ccdb02283d97n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/b5285e0c-51bf-4ec5-8682-70b5a324c32bn%40googlegroups.com.