# shellcheck shell=dash

# Section: add  bin/ lib/ man/
___x_cmd_pkg_sphere_path___unit_add_bin(){
    local dir=;
    while [ "$#" -gt 0 ]; do
        dir="$1"; shift
        [ -n "$dir" ] || continue
        ___x_cmd_path_add_existed_folder "$dir" || N=pkg M="Add bin path[$dir] failed" log:ret:1
    done
}

___x_cmd_pkg_sphere_path___unit_add_lib(){
    local libpath=;
    if ___x_cmd_pkg___isdarwin;  then   libpath="$DYLD_LIBRARY_PATH"
    else                                libpath="$LD_LIBRARY_PATH"
    fi

    local dir=; local x_=;
    while [ "$#" -gt 0 ]; do
        dir="$1"; shift
        [ -n "$dir" ] || continue
        ___x_cmd_path_obj_add_existed_folder_ "$libpath" "$dir" || N=pkg M="Add lib path[$dir] failed" log:ret:1
    done

    if ___x_cmd_pkg___isdarwin;  then   DYLD_LIBRARY_PATH="$x_"
    else                                LD_LIBRARY_PATH="$x_"
    fi
}

___x_cmd_pkg_sphere_path___unit_add_man(){
    local dir=; local x_=;
    while [ "$#" -gt 0 ]; do
        dir="$1"; shift
        [ -n "$dir" ] || continue
        [ -d "$dir" ] || {
            pkg:info "Invalid manpath[$dir]"
            continue
        }
        ___x_cmd_path_obj_add_existed_folder_ "$MANPATH" "$dir" || N=pkg M="Add man path[$dir] failed" log:ret:1
    done

    if [ -n "$x_" ] && [ "$x_" = "${x_#:}" ]; then
        x_=":${x_}"
    fi
    MANPATH="$x_"
}

# EndSection

# Section: rm  bin/ lib/ man/
___x_cmd_pkg_sphere_path___unit_rm_bin(){
    local dir=;
    while [ "$#" -gt 0 ]; do
        dir="$1"; shift
        [ -n "$dir" ] || continue
        ___x_cmd_path_rm "$dir" || N=pkg M="Remove bin path[$dir] failed" log:ret:1
    done
}

___x_cmd_pkg_sphere_path___unit_rm_lib(){
    local libpath=;
    if ___x_cmd_pkg___isdarwin;  then   libpath="$DYLD_LIBRARY_PATH"
    else                                libpath="$LD_LIBRARY_PATH"
    fi

    local dir=; local x_=;
    while [ "$#" -gt 0 ]; do
        dir="$1"; shift
        [ -n "$dir" ] || continue
        ___x_cmd_path_obj_rm_ "$libpath" "$dir" || N=pkg M="Remove lib path[$dir] failed" log:ret:1
    done

    if ___x_cmd_pkg___isdarwin;  then   DYLD_LIBRARY_PATH="$x_"
    else                                LD_LIBRARY_PATH="$x_"
    fi
}

___x_cmd_pkg_sphere_path___unit_rm_man(){
    local dir=; local x_=;
    while [ "$#" -gt 0 ]; do
        dir="$1"; shift
        [ -n "$dir" ] || continue
        [ -d "$dir" ] || {
            pkg:info "Invalid manpath[$dir]"
            continue
        }
        ___x_cmd_path_obj_rm_ "$MANPATH" "$dir" || N=pkg M="Remove man path[$dir] failed" log:ret:1
    done

    if [ -n "$x_" ] && [ "$x_" = "${x_#:}" ]; then
        x_=":${x_}"
    fi
    MANPATH="$x_"
}

# EndSection
