| #!/usr/bin/env bash | 
 | #  | 
 | # Copyright (C) 2006 OpenWrt.org | 
 | # | 
 | # This is free software, licensed under the GNU General Public License v2. | 
 | # See /LICENSE for more information. | 
 | # | 
 | SELF=${0##*/} | 
 |  | 
 | [ -z "$STRIP" ] && { | 
 |   echo "$SELF: strip command not defined (STRIP variable not set)" | 
 |   exit 1 | 
 | } | 
 |  | 
 | TARGETS=$* | 
 |  | 
 | [ -z "$TARGETS" ] && { | 
 |   echo "$SELF: no directories / files specified" | 
 |   echo "usage: $SELF [PATH...]" | 
 |   exit 1 | 
 | } | 
 |  | 
 | find $TARGETS -not -path \*/lib/firmware/\* -a -type f -a -exec file {} \; | \ | 
 |   sed -n -e 's/^\(.*\):.*ELF.*\(executable\|relocatable\|shared object\).*,.*/\1:\2/p' | \ | 
 | ( | 
 |   IFS=":" | 
 |   while read F S; do | 
 |     echo "$SELF: $F: $S" | 
 | 	[ "${S}" = "relocatable" ] && { | 
 | 		[ "${F##*.}" == "o" ] && continue | 
 | 		eval "$STRIP_KMOD $F" | 
 | 	} || { | 
 | 		b=$(stat -c '%a' $F) | 
 | 		[ -z "$PATCHELF" ] || [ -z "$TOPDIR" ] || { | 
 | 			old_rpath="$($PATCHELF --print-rpath $F)"; new_rpath="" | 
 | 			for path in $old_rpath; do | 
 | 				case "$path" in | 
 | 					/lib/[^/]*|/usr/lib/[^/]*|\$ORIGIN/*|\$ORIGIN) new_rpath="${new_rpath:+$new_rpath:}$path" ;; | 
 | 					*) echo "$SELF: $F: removing rpath $path" ;; | 
 | 				esac | 
 | 			done | 
 | 			[ "$new_rpath" = "$old_rpath" ] || $PATCHELF --set-rpath "$new_rpath" $F | 
 | 		} | 
 | 		eval "$STRIP $F" | 
 | 		a=$(stat -c '%a' $F) | 
 | 		[ "$a" = "$b" ] || chmod $b $F | 
 | 	} | 
 |   done | 
 |   true | 
 | ) |