|
@@ -4,21 +4,21 @@
|
|
|
|
|
|
|
|
|
TOPDIR=$1
|
|
|
-
|
|
|
-[[ -n $BASH_VERSION ]] && shopt -s extglob
|
|
|
+(( x_cols = (COLUMNS > 10) ? COLUMNS - 2 : 80 ))
|
|
|
+typeset -L$x_cols pbar
|
|
|
|
|
|
grep -v '^BUSYBOX\|^# BUSYBOX' $TOPDIR/.config > $TOPDIR/.config.split
|
|
|
|
|
|
mkdir -p $TOPDIR/.cfg
|
|
|
cd $TOPDIR/.cfg
|
|
|
|
|
|
-oldfiles=$(echo *)
|
|
|
+oldfiles=$(print -r -- *)
|
|
|
newfiles=:
|
|
|
|
|
|
-echo -n 'autosplitting main config...'
|
|
|
+print -nu2 'autosplitting main config...'
|
|
|
while read line; do
|
|
|
oline=$line
|
|
|
- [[ -n $line ]] && if [[ $line = @(
|
|
|
+ [[ -n $line ]] && if [[ $line = @(\
|
|
|
line=${line#? }
|
|
|
if [[ $line = *@( is not set) ]]; then
|
|
|
line=${line% is not set}
|
|
@@ -28,12 +28,12 @@ while read line; do
|
|
|
fi
|
|
|
elif [[ $line = @([A-Z])*@(=)* ]]; then
|
|
|
line=${line%%=*}
|
|
|
- elif [[ $line = @(
|
|
|
+ elif [[ $line = \
|
|
|
|
|
|
line=
|
|
|
else
|
|
|
|
|
|
- echo "Warning: line '$oline' invalid!" >&2
|
|
|
+ print -u2 "\nWarning: line '$oline' invalid!"
|
|
|
line=
|
|
|
fi
|
|
|
|
|
@@ -44,9 +44,9 @@ while read line; do
|
|
|
else
|
|
|
fline=
|
|
|
fi
|
|
|
- [[ $oline = $fline ]] || echo "$oline" >$line
|
|
|
+ [[ $oline = $fline ]] || print -r -- "$oline" >$line
|
|
|
if [[ $newfiles = *:$line:* ]]; then
|
|
|
- echo "Error: duplicate Config.in option '$line'!" >&2
|
|
|
+ print -u2 "\nError: duplicate Config.in option '$line'!"
|
|
|
exit 1
|
|
|
fi
|
|
|
newfiles=$newfiles$line:
|
|
@@ -54,11 +54,11 @@ while read line; do
|
|
|
done <$TOPDIR/.config.split
|
|
|
|
|
|
|
|
|
-echo -n ' removals...'
|
|
|
+print -nu2 ' removals...'
|
|
|
for oldfile in $oldfiles; do
|
|
|
[[ $newfiles = *:$oldfile:* ]] || rm -f $oldfile
|
|
|
done
|
|
|
-printf '\r%60s\r' ''
|
|
|
+print -nu2 '\r'
|
|
|
|
|
|
|
|
|
|
|
@@ -69,18 +69,19 @@ printf '\r%60s\r' ''
|
|
|
cd $TOPDIR/.cfg
|
|
|
rm -f $TOPDIR/package/*/info.mk
|
|
|
for option in *; do
|
|
|
- echo -n "$option ..."
|
|
|
- x=$(( ${#option} + 4 ))
|
|
|
+ pbar="$option ..."
|
|
|
+ print -nu2 "$pbar\r"
|
|
|
ao=:
|
|
|
fgrep -l $option $TOPDIR/package/*/{Makefile,Config.*} 2>&- | \
|
|
|
while read line; do
|
|
|
- echo ${line%/*}/info.mk
|
|
|
+ print -r -- ${line%/*}/info.mk
|
|
|
done | while read fname; do
|
|
|
[[ $ao = *:$fname:* ]] && continue
|
|
|
ao=$ao$fname:
|
|
|
echo "\${_IPKGS_COOKIE}: \${TOPDIR}/.cfg/$option" >>$fname
|
|
|
done
|
|
|
- printf '\r%'$x's\r' ''
|
|
|
done
|
|
|
+pbar=done
|
|
|
+print -u2 "$pbar"
|
|
|
|
|
|
exit 0
|