# helper functions sourced from other scripts

logg(){
    [ -z "$@" ] && return
    logger -s -p "user.info" -t "$0" "$1"
}



loggerr(){
    logger -s -p "user.err" -t "$0" "$1"
}

Reboot(){
    if [ -e /var/local/telem/sysinit ]; then
        logg "Rebooting system (sysinit)"
        touch /var/local/telem/sysinit_reboot
    else
        logg "Rebooting system"
        reboot
    fi
}

fileRotate()
{
    # $1 filename
    # $2 count
    if [ -f "$1" ]; then
        for i in $(seq $2 -1 0); do
            mv "$1".$i "$1".$((i+1)) &>/dev/null
        done
        mv "$1" "$1".0 &>/dev/null
    fi
}

fileRotateXZ()
{
    # for uncompressed files
    # $1 filename
    # $2 count
    if [ -f "$1" ]; then
        if [ -f "$1.0" ]; then
            for i in $(seq $2 -1 1); do
                mv "$1".$i.tar.xz "$1".$((i+1)).tar.xz &>/dev/null
            done
            tar -cf - "$1".0 | xz -fz0 - > "$1".1.tar.xz
        fi
        mv "$1" "$1".0 &>/dev/null
    fi
}

findSDp1()
{
    findSDp1_sd=
    for dir in /sys/class/block/mmcblk*p1/; do
        dir=${dir%*/}
        grep -Fq -- SD "$dir/../device/type" && { findSDp1_sd="/dev/${dir##*/}";return 0; }
    done
    return 1
}

isSDp1Mounted()
{
    local sdd="/mnt/sd"
    [ -n "$1" ] && sdd="$1"
    grep -q -- "mmcblk.p1.*$sdd" /proc/mounts
}

mountSDp1()
{
    if findSDp1; then
        local sdd="/mnt/sd"
        [ -n "$SDD" ] && sdd="$SDD"
        mkdir -p $sdd &> /dev/null
        mount "$findSDp1_sd" "$sdd" &> /dev/null
        return 0
    fi
    return 1
}
