No need to even think about this. Look at ssh and mimic their practices. It has been thoroughly audited.
> On Jun 10, 2023, at 5:35 AM, quin...@gmail.com <quint...@gmail.com> wrote: > > 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. > > -- > 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. -- 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/1623BF2C-4FB9-458A-813B-5FD80A89D443%40ix.netcom.com.