base-files: Add new functions for ath11k caldata
[openwrt/staging/blocktrron.git] / package / base-files / files / lib / functions.sh
index ee0c33845c508790578524c06cc3fc50450e3e58..7b3203f55abf527d49e1644de124a1d9a546ab71 100644 (file)
@@ -32,6 +32,30 @@ xor() {
        printf "%0${retlen}x" "$ret"
 }
 
+data_2bin() {
+       local data=$1
+       local len=${#1}
+       local bin_data
+
+       for i in $(seq 0 2 $(($len - 1))); do
+               bin_data="${bin_data}\x${data:i:2}"
+       done
+
+       echo -ne $bin_data
+}
+
+data_2xor_val() {
+       local data=$1
+       local len=${#1}
+       local xor_data
+
+       for i in $(seq 0 4 $(($len - 1))); do
+               xor_data="${xor_data}${data:i:4} "
+       done
+
+       echo -n ${xor_data:0:-1}
+}
+
 append() {
        local var="$1"
        local value="$2"
@@ -40,6 +64,14 @@ append() {
        eval "export ${NO_EXPORT:+-n} -- \"$var=\${$var:+\${$var}\${value:+\$sep}}\$value\""
 }
 
+prepend() {
+       local var="$1"
+       local value="$2"
+       local sep="${3:- }"
+
+       eval "export ${NO_EXPORT:+-n} -- \"$var=\$value\${$var:+\${sep}\${$var}}\""
+}
+
 list_contains() {
        local var="$1"
        local str="$2"
@@ -262,11 +294,6 @@ default_postinst() {
 
        add_group_and_user "${pkgname}"
 
-       if [ -f "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" ]; then
-               ( . "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" )
-               ret=$?
-       fi
-
        if [ -d "$root/rootfs-overlay" ]; then
                cp -R $root/rootfs-overlay/. $root/
                rm -fR $root/rootfs-overlay/
@@ -292,6 +319,11 @@ default_postinst() {
                rm -f /tmp/luci-indexcache
        fi
 
+       if [ -f "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" ]; then
+               ( . "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" )
+               ret=$?
+       fi
+
        local shell="$(command -v bash)"
        for i in $(grep -s "^/etc/init.d/" "$root$filelist"); do
                if [ -n "$root" ]; then
@@ -315,6 +347,11 @@ include() {
        done
 }
 
+ipcalc() {
+       set -- $(ipcalc.sh "$@")
+       [ $? -eq 0 ] && export -- "$@"
+}
+
 find_mtd_index() {
        local PART="$(grep "\"$1\"" /proc/mtd | awk -F: '{print $1}')"
        local INDEX="${PART##mtd}"
@@ -386,6 +423,9 @@ group_add_user() {
        echo "$grp" | grep -q ":$" && delim=""
        [ -n "$IPKG_INSTROOT" ] || lock /var/lock/passwd
        sed -i "s/$grp/$grp$delim$2/g" ${IPKG_INSTROOT}/etc/group
+       if [ -z "$IPKG_INSTROOT" ] && [ -x /usr/sbin/selinuxenabled ] && selinuxenabled; then
+               restorecon /etc/group
+       fi
        [ -n "$IPKG_INSTROOT" ] || lock -u /var/lock/passwd
 }