123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- Index: os-prober/common.sh
- ===================================================================
- --- os-prober.orig/common.sh
- +++ os-prober/common.sh
- @@ -62,10 +62,14 @@ cache_progname() {
- esac
- }
-
- -log() {
- - cache_progname
- - logger -t "$progname" "$@"
- -}
- +# fd_logger: bind value now, possibly after assigning default.
- +eval '
- + log() {
- + cache_progname
- + echo "$progname: $@" 1>&'${fd_logger:=9}'
- + }
- +'
- +export fd_logger # so subshells inherit current value by default
-
- error() {
- log "error: $@"
- @@ -81,10 +85,14 @@ debug() {
- fi
- }
-
- -result () {
- - log "result:" "$@"
- - echo "$@"
- -}
- +# fd_result: bind value now, possibly after assigning default.
- +eval '
- + result() {
- + log "result:" "$@"
- + echo "$@" 1>&'${fd_result:=1}'
- + }
- +'
- +export fd_result # so subshells inherit current value by default
-
- # shim to make it easier to use os-prober outside d-i
- if ! type mapdevfs >/dev/null 2>&1; then
- Index: os-prober/linux-boot-prober
- ===================================================================
- --- os-prober.orig/linux-boot-prober
- +++ os-prober/linux-boot-prober
- @@ -1,4 +1,12 @@
- #!/bin/sh
- +
- +# dash shell does not have "{varname}>&1" feature that bash shell has
- +# for auto-assignment of new filedescriptors.
- +# It is cumbersome to write the 'eval' to use our own variables in redirections.
- +# Therefore use fixed numbers.
- +export fd_result=3 # file descriptor for external results
- +export fd_logger=9 # file descriptor for input to logger
- +
- . /usr/share/os-prober/common.sh
-
- set -e
- @@ -19,6 +27,7 @@ bootuuid=
-
- grep "^/dev/" /proc/mounts | parse_proc_mounts >"$OS_PROBER_TMP/mounted-map" || true
-
- +( (
- if [ -z "$1" ]; then
- ERR=y
- elif [ "$1" = btrfs -a -z "$2" ]; then
- @@ -186,3 +195,5 @@ else
- fi
- fi
- fi
- +) 9>&1 | logger 1>&- # fd_logger
- +) 3>&1 # fd_result
- Index: os-prober/os-prober
- ===================================================================
- --- os-prober.orig/os-prober
- +++ os-prober/os-prober
- @@ -1,7 +1,14 @@
- #!/bin/sh
- set -e
-
- -. /usr/share/os-prober/common.sh
- +# dash shell does not have "{varname}>&1" feature that bash shell has
- +# for auto-assignment of new filedescriptors.
- +# It is cumbersome to write the 'eval' to use our own variables in redirections.
- +# Therefore use fixed numbers.
- +export fd_result=3 # file descriptor for external results
- +export fd_logger=9 # file descriptor for input to logger
- +
- + . /usr/share/os-prober/common.sh
-
- newns "$@"
- require_tmpdir
- @@ -136,6 +143,7 @@ fi
-
- : >"$OS_PROBER_TMP/btrfs-vols"
-
- +( (
- for partition in $(partitions); do
- if ! mapped="$(mapdevfs "$partition")"; then
- log "Device '$partition' does not exist; skipping"
- @@ -200,3 +208,5 @@ for partition in $(partitions); do
- fi
- fi
- done
- +) 9>&1 | logger 1>&- # fd_logger
- +) 3>&1 # fd_result
|