| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | #! /bin/sh | 
					
						
							|  |  |  | # mkinstalldirs --- make directory hierarchy | 
					
						
							|  |  |  | # Author: Noah Friedman <friedman@prep.ai.mit.edu> | 
					
						
							|  |  |  | # Created: 1993-05-16 | 
					
						
							|  |  |  | # Public domain | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # $Id$ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | errstatus=0 | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | dirmode="" | 
					
						
							| 
									
										
										
										
											2005-04-01 13:48:30 +00:00
										 |  |  | owner="" | 
					
						
							|  |  |  | group="" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | chmodprog="${CHMODPROG-chmod}" | 
					
						
							|  |  |  | chownprog="${CHOWNPROG-chown}" | 
					
						
							|  |  |  | chgrpprog="${CHOWNPROG-chgrp}" | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | usage="\ | 
					
						
							| 
									
										
										
										
											2005-04-01 13:48:30 +00:00
										 |  |  | Usage: mkinstalldirs [-h] [--help] [-m mode] [-o owner] [-g group] dir ..." | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # process command line arguments | 
					
						
							|  |  |  | while test $# -gt 0 ; do | 
					
						
							|  |  |  |    case "${1}" in | 
					
						
							|  |  |  |      -h | --help | --h* )			# -h for help | 
					
						
							|  |  |  |         echo "${usage}" 1>&2; exit 0 ;; | 
					
						
							|  |  |  |      -m )					# -m PERM arg | 
					
						
							|  |  |  |         shift | 
					
						
							|  |  |  |         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } | 
					
						
							|  |  |  |         dirmode="${1}" | 
					
						
							|  |  |  |         shift ;; | 
					
						
							| 
									
										
										
										
											2005-04-01 13:48:30 +00:00
										 |  |  |      -o )					# -o OWNER arg | 
					
						
							|  |  |  |         shift | 
					
						
							|  |  |  |         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } | 
					
						
							|  |  |  |         owner="${1}" | 
					
						
							|  |  |  |         shift ;; | 
					
						
							|  |  |  |      -g )					# -g OWNER arg | 
					
						
							|  |  |  |         shift | 
					
						
							|  |  |  |         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } | 
					
						
							|  |  |  |         group="${1}" | 
					
						
							|  |  |  |         shift ;; | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  |      -- ) shift; break ;;			# stop option processing | 
					
						
							|  |  |  |      -* ) echo "${usage}" 1>&2; exit 1 ;;	# unknown option | 
					
						
							|  |  |  |      * )  break ;;				# first non-opt arg | 
					
						
							|  |  |  |    esac | 
					
						
							|  |  |  | done | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | for file | 
					
						
							|  |  |  | do | 
					
						
							|  |  |  |    set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` | 
					
						
							|  |  |  |    shift | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    pathcomp= | 
					
						
							|  |  |  |    for d | 
					
						
							|  |  |  |    do | 
					
						
							|  |  |  |      pathcomp="$pathcomp$d" | 
					
						
							|  |  |  |      case "$pathcomp" in | 
					
						
							|  |  |  |        -* ) pathcomp=./$pathcomp ;; | 
					
						
							|  |  |  |      esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  |      if test ! -d "$pathcomp" -a ! -d "$pathcomp/"; then | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  |         echo "mkdir $pathcomp" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         mkdir "$pathcomp" || lasterr=$? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  |         if test ! -d "$pathcomp" -a ! -d "$pathcomp/"; then | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  |   	  errstatus=$lasterr | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | 	else | 
					
						
							|  |  |  | 	  if test ! -z "$dirmode"; then | 
					
						
							| 
									
										
										
										
											2005-04-01 13:48:30 +00:00
										 |  |  | 	     echo "$chmodprog $dirmode $pathcomp" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	     lasterr="" | 
					
						
							|  |  |  | 	     $chmodprog $dirmode "$pathcomp" || lasterr=$? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	     if test ! -z "$lasterr"; then | 
					
						
							|  |  |  | 	       errstatus=$lasterr | 
					
						
							|  |  |  | 	     fi | 
					
						
							|  |  |  | 	  fi | 
					
						
							|  |  |  | 	  if test ! -z "$owner"; then | 
					
						
							|  |  |  | 	     echo "$chownprog $owner $pathcomp" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	     lasterr="" | 
					
						
							|  |  |  | 	     $chownprog $owner "$pathcomp" || lasterr=$? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	     if test ! -z "$lasterr"; then | 
					
						
							|  |  |  | 	       errstatus=$lasterr | 
					
						
							|  |  |  | 	     fi | 
					
						
							|  |  |  | 	  fi | 
					
						
							|  |  |  | 	  if test ! -z "$group"; then | 
					
						
							|  |  |  | 	     echo "$chgrpprog $group $pathcomp" | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	     lasterr="" | 
					
						
							| 
									
										
										
										
											2005-04-01 13:48:30 +00:00
										 |  |  | 	     $chgrpprog $group "$pathcomp" || lasterr=$? | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	     if test ! -z "$lasterr"; then | 
					
						
							|  |  |  | 	       errstatus=$lasterr | 
					
						
							|  |  |  | 	     fi | 
					
						
							|  |  |  | 	  fi | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  |         fi | 
					
						
							|  |  |  |      fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      pathcomp="$pathcomp/" | 
					
						
							|  |  |  |    done | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit $errstatus | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-11-22 20:17:48 +00:00
										 |  |  | # Local Variables: | 
					
						
							|  |  |  | # mode:shell-script | 
					
						
							|  |  |  | # sh-indentation:3 | 
					
						
							|  |  |  | # End: |