#!/bin/sh ######################################################################### # # FILE : dirmod # DATE : 6.8.2000 # AUTHOR : Patrick Meier / patrick.meier@gmx.net # DESCRIPTION : change permission of a directorytree # # Copyrigth (C) 2001 by Patrick Meier, Switzerland # ######################################################################### PN=`basename "$0"` STARTSTRING="==>" ######################################################################### # defines ######################################################################### CHMOD="chmod" DEFAULT_DIRMOD="750" DEFAULT_FILEMOD="640" DEFAULT_FILES="*" START_PATH="." ######################################################################### # Usage ######################################################################### Usage() { echo "$PN - change permission of a directorytree" echo "usage: $PN [-d permission (default $DEFAULT_DIRMOD)] [-f permission (default $DEFAULT_FILEMOD)] [-p path (default .)] [-pattern file-pattern]" echo "" echo "examples:" echo " $PN " echo " $PN -pattern \"*.java\"" echo " $PN -f 600 -pattern \"*.cpp\"" echo " $PN -f 644 -d 755" exit 1 } ######################################################################### # ParameterFailed ######################################################################### ParameterFailed() { echo "${STARTSTRING}Parameter faild: $1 ..."; echo "" Usage } ######################################################################### # main ######################################################################### VERBOSE="" FILEPATTERN="\"*\"" while [ $# -gt 0 ] do case "$1" in -f) if [ $# -gt 1 ] ; then DEFAULT_FILEMOD="$2"; shift; else ParameterFailed "$1"; fi;; -d) if [ $# -gt 1 ] ; then DEFAULT_DIRMOD="$2"; shift; else ParameterFailed "$1"; fi;; -p) if [ $# -gt 1 ] ; then START_PATH="$2"; shift; else ParameterFailed "$1"; fi;; -pattern) if [ $# -gt 1 ] ; then FILEPATTERN="$2"; shift; else ParameterFailed "$1"; fi;; -verbose) VERBOSE="YES";; -h) Usage;; -*) Usage;; esac shift done echo "${STARTSTRING}Changing permission of directorie(s) to $DEFAULT_DIRMOD..." CMD="find $START_PATH -name \"*\" -type d -print" DIRS="`eval $CMD`" if [ -n "$VERBOSE" ] then echo "$CMD" echo "$DIRS" echo " " fi for i in $DIRS do $CHMOD $DEFAULT_DIRMOD $i done echo "${STARTSTRING}Changing permission of file(s) $FILEPATTERN to $DEFAULT_FILEMOD..." CMD="find $START_PATH -name $FILEPATTERN -type f -print" FILES="`eval $CMD`" if [ -n "$VERBOSE" ] then echo "$CMD" echo "$FILES" fi for i in $FILES do $CHMOD $DEFAULT_FILEMOD $i done ######################################################################### # EOF #########################################################################