## ## fixperm -- Fix file permissions inside a source tree ## Copyright (c) 1996-2001 Ralf S. Engelschall ## Originally written for ePerl ## ## This file is part of shtool and free software; you can redistribute ## it and/or modify it under the terms of the GNU General Public ## License as published by the Free Software Foundation; either version ## 2 of the License, or (at your option) any later version. ## ## This file is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA, or contact Ralf S. Engelschall . ## str_tool="fixperm" str_usage="[-v] [-t] [ ...]" arg_spec="1+" opt_spec="v.t." opt_v=no opt_t=no . ./sh.common paths="$*" # check whether the test command supports the -x option if [ -x /bin/sh ] 2>/dev/null; then minusx="-x" else minusx="-r" fi # iterate over paths for p in $paths; do for file in `find $p -depth -print`; do if [ -f $file ]; then if [ $minusx $file ]; then if [ ".$opt_v" = .yes ]; then echo "-rwxrwxr-x $file" 2>&1 fi if [ ".$opt_t" = .yes ]; then echo "chmod 775 $file" 2>&1 fi chmod 775 $file else if [ ".$opt_v" = .yes ]; then echo "-rw-rw-r-- $file" 2>&1 fi if [ ".$opt_t" = .yes ]; then echo "chmod 664 $file" 2>&1 fi chmod 664 $file fi continue fi if [ -d $file ]; then if [ ".$opt_v" = .yes ]; then echo "drwxrwxr-x $file" 2>&1 fi if [ ".$opt_t" = .yes ]; then echo "chmod 775 $file" 2>&1 fi chmod 775 $file continue fi if [ ".$opt_v" = .yes ]; then echo "?????????? $file" 2>&1 fi done done