Armin K. wrote: > On 10/09/2012 06:33 PM, Bruce Dubbs wrote: >> Armin K. wrote: >> >> > From what I see, your command would attempt to use either sudo or su >> > even if ran as root user. Maybe some kind of "am I root?" checking >> > should be done there before trying to check for sudo or execute su if >> > sudo is not present. >> >> as_root() >> { >> if [ $EUID = 0 ]; then $* >> elif [ -x /usr/bin/sudo ]; then sudo $* >> else su -c \\"$*\\" >> fi >> } >> >> export -f as_root >> >> The spacing may be slightly overdone.
> Looks better. But, I have a suggestion. Let's include the "script" into > instructions, for example: > > if [ $EUID = 0 ]; then make install > elif [ -x /usr/bin/sudo ]; then sudo make install > else su -c "make install" > fi > > Add it by default instead of "AS_ROOT make install", but explain how > should it be used and what it really does. > > What do you say? That would be OK, but I did like the idea of using a bash function from an educational perspective. Perhaps a note describing that in the first instance would provide an option for users. For that matter, the whole script could be made into a function: build() { for package in $(grep -v '^#' $1 | awk '{print $2}') do packagedir=${package%.tar.bz2} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG if [ $EUID = 0 ]; then make install elif [ -x /usr/bin/sudo ]; then sudo make install else su -c "make install" fi popd rm -r $packagedir done } Then just build ../proto-7.7.md5 The interesting (confusing) thing here is that $1 is the parameter to the build function and $2 is related to the awk command and not the function. The script for the xorg libraries is different and uses AS_ROOT twice, but xorg apps and xorg fonts would use the same function with a different argument. I'm just throwing this out for discussion. -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/blfs-dev FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page