77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# The list of all applet config symbols
 | 
						|
test -f include/applets.h || { echo "No include/applets.h file"; exit 1; }
 | 
						|
apps="`
 | 
						|
grep ^IF_ include/applets.h \
 | 
						|
| grep -v ^IF_FEATURE_ \
 | 
						|
| sed 's/IF_\([A-Z0-9._-]*\)(.*/\1/' \
 | 
						|
| sort | uniq
 | 
						|
`"
 | 
						|
 | 
						|
test $# = 0 && set -- $apps
 | 
						|
 | 
						|
mintext=999999999
 | 
						|
for app; do
 | 
						|
	b="busybox_${app}"
 | 
						|
	test -f "$b" || continue
 | 
						|
	text=`size "$b" | tail -1 | sed -e's/\t/ /g' -e's/^ *//' -e's/ .*//'`
 | 
						|
	#echo "text from $app: $text"
 | 
						|
	test x"${text//[0123456789]/}" = x"" || {
 | 
						|
		echo "Can't get: size $b"
 | 
						|
		exit 1
 | 
						|
	}
 | 
						|
	test $mintext -gt $text && {
 | 
						|
		mintext=$text
 | 
						|
		echo "# New mintext from $app: $mintext"
 | 
						|
	}
 | 
						|
	eval "text_${app}=$text"
 | 
						|
done
 | 
						|
 | 
						|
for app; do
 | 
						|
	b="busybox_${app}"
 | 
						|
	test -f "$b" || continue
 | 
						|
	eval "text=\$text_${app}"
 | 
						|
	echo "# $app adds $((text-mintext))"
 | 
						|
done
 | 
						|
 | 
						|
grep ^IF_ include/applets.h \
 | 
						|
| grep -v ^IF_FEATURE_ \
 | 
						|
| sed 's/, .*//' \
 | 
						|
| sed 's/\t//g' \
 | 
						|
| sed 's/ //g' \
 | 
						|
| sed 's/(APPLET(/(/' \
 | 
						|
| sed 's/(APPLET_[A-Z]*(/(/' \
 | 
						|
| sed 's/(IF_[A-Z_]*(/(/' \
 | 
						|
| sed 's/IF_\([A-Z0-9._-]*\)(\(.*\)/\1 \2/' \
 | 
						|
| sort | uniq \
 | 
						|
| while read app name; do
 | 
						|
	b="busybox_${app}"
 | 
						|
	test -f "$b" || continue
 | 
						|
 | 
						|
	file=`grep -lF "bool \"$name" $(find -name '*.c') | xargs`
 | 
						|
	# so far all such items are in .c files; if need to check Config.* files:
 | 
						|
	#test "$file" || file=`grep -lF "bool \"$name" $(find -name 'Config.*') |  xargs`
 | 
						|
	test "$file" || continue
 | 
						|
	#echo "FILE:'$file'"
 | 
						|
 | 
						|
	eval "text=\$text_${app}"
 | 
						|
	sz=$((text-mintext))
 | 
						|
	sz_kb=$((sz/1000))
 | 
						|
	sz_frac=$(( (sz - sz_kb*1000) ))
 | 
						|
	sz_f=$((sz_frac / 100))
 | 
						|
 | 
						|
	echo -n "sed 's/bool \"$name"'[" ](*[0-9tinykbytes .]*)*"*$/'
 | 
						|
	if test "$sz_kb" -ge 10; then
 | 
						|
		echo -n "bool \"$name (${sz_kb} kb)\""
 | 
						|
	elif test "$sz_kb" -gt 0 -a "$sz_f" = 0; then
 | 
						|
		echo -n "bool \"$name (${sz_kb} kb)\""
 | 
						|
	elif test "$sz_kb" -gt 0; then
 | 
						|
		echo -n "bool \"$name ($sz_kb.${sz_f} kb)\""
 | 
						|
	elif test "$sz" -ge 200; then
 | 
						|
		echo -n "bool \"$name ($sz bytes)\""
 | 
						|
	else
 | 
						|
		echo -n "bool \"$name (tiny)\""
 | 
						|
	fi
 | 
						|
	echo "/' -i $file"
 | 
						|
done
 |