1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/bin/bash
- [[ -d "$1" ]] || {
- echo "Usage: $(basename $0) <busybox_sourcedir>"
- exit 1
- }
- bbsrc="$(realpath $1)"
- cd $(dirname $0)
- [[ -e config.new ]] && {
- echo -n "config.new exists already. delete? [y|n] "
- read ans
- case "$ans" in
- y|Y)
- rm -rf config.new
- ;;
- n|N)
- ;;
- *)
- echo "what is '$ans'?"
- exit 1
- esac
- }
- mkdir -p config.new
- # store config paths relative to $bbsrc into an array
- readarray -t configs <<< $(cd "$bbsrc"; find . -type f -name Config.in)
- # copy each config into config.new
- for config in "${configs[@]}"; do
- mkdir -p config.new/$(dirname $config)
- cp "$bbsrc/$config" "config.new/$config"
- done
- # store defined config symbols into an array
- readarray -t symbols <<< $(grep -hr '^config ' config.new | cut -d' ' -f2)
- ### customize busybox config system for OpenADK
- cd config.new
- # no extra mainmenu, allow replacing PREFIX
- sed -i -e 's/^mainmenu/# mainmenu/' -e 's,./_install,@IDIR@,' Config.in
- # prefix all symbols with BUSYBOX_ to create a namespace
- # limit replacement to lines containing given keywords to
- # not mess up help texts and prompts too much
- keywords='\(config\|depends\|range\|select\|default\|^if \)'
- sympipe=$(IFS='|'; echo "${symbols[*]}" | sed -e 's/|/\\|/g')
- sympipe_s='/'$keywords'/s/\b\('$sympipe'\)\b/BUSYBOX_\1/g'
- # fix path of all sourced files
- source_s='s,^\(source *\)\([^ ]*\)$,\1package/busybox/config/\2,'
- sed -i -e "$sympipe_s" -e "$source_s" "${configs[@]}"
|