For my own sake I'd like to add some basic automated tests which make it simple to run this and other scripts as a non-root user, both for development purposes, and to have some regression tests in place.
It's code I currently control, so refactoring is an option, but I'd rather avoid refactoring something which works into something that imposes what may be perceived as pointless complexity on future custodians.
So, I was hoping for was a module someone had already written, or a simple trick, which could do this fairly transparently and effortlessly.
By the way, thanks for the suggestions so far, it's always educational to ask for help. I quite like the PATH idea, and overriding readpipe is in fact doable in the same way as it is for system, but a quick experiment suggests that it's not that easy to change the behaviour of backticks:
$ perl -le 'BEGIN { *CORE::GLOBAL::readpipe = sub { print "hello $_[0 +]" } } readpipe "foo"; `bar` ' hello foo
In reply to Re^2: mocking or trapping system calls
by wu-lee
in thread mocking or trapping system calls
by wu-lee
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |