--- ldconfig-0.1 2014-11-19 20:56:11.923329891 -0100 +++ ldconfig-0.2 2015-03-29 23:51:35.216918839 -0100 @@ -10,16 +10,6 @@ LDSO_CONF_DIR=$(dirname $LDSO_CONF) -LDSO_PATH=$(ls /lib/ld-musl-*.so.1) -if [[ ! -e $LDSO_PATH ]]; then - echo "$LDSO_PATH not found" >&2 - exit 1 -fi - -LDSO_ARCH=$(basename $LDSO_PATH) -LDSO_NAME=${LDSO_ARCH%.so.1} -ETC_LDSO_PATH=/etc/${LDSO_NAME}.path - VERBOSE=0 get_options() { @@ -33,7 +23,7 @@ ROOT=$OPTARG ;; f) - LDSOCONF=$OPTARG + LDSO_CONF=$OPTARG ;; \?) echo "Invalid option: -$opt" >&2 @@ -41,7 +31,6 @@ ;; n|N|X|C) echo "Unimplemented option: -$opt" >&2 - exit 1 ;; esac done @@ -106,7 +95,7 @@ fi fi done - done < $LDSO_CONF + done < $1 echo $drs } @@ -121,16 +110,21 @@ } get_options "$@" -drs=$(read_ldso_conf) +drs=$(read_ldso_conf "$LDSO_CONF") +for f in $LDSO_CONF.d/*; do + drs="$drs $(read_ldso_conf "$f")" +done drs=$(sanitize $drs) -X=$(mktemp --tmpdir=/tmp ${LDSO_NAME}.XXXXXX) -cat << EOF > $X -# $ETC_LDSO_PATH autogenerated by env-update; make all changes to -# contents of /etc/env.d directory -EOF -for d in $drs; do - echo $d >> $X +for LDSO_PATH in $(find /lib -maxdepth 1 -name "ld-musl-*.so.1"); do + LDSO_ARCH=$(basename $LDSO_PATH) + LDSO_NAME=${LDSO_ARCH%.so.1} + ETC_LDSO_PATH=/etc/${LDSO_NAME}.path + + X=$(mktemp --tmpdir=/tmp ${LDSO_NAME}.XXXXXX) + for d in $drs; do + echo $d >> $X + done + mv $X $ETC_LDSO_PATH + chmod 644 $ETC_LDSO_PATH done -mv $X $ETC_LDSO_PATH -