# shellcheck shell=dash

___x_cmd_cosmo___assimilate(){
    local bin="$1"
    local tgt="$2"
    local osarch="$3"

    ___x_cmd_cosmo___hasbin "$bin" || N=cosmo M="Not found bin => $bin " log:ret:1

    local x_="";    ___x_cmd_cosmo___binpath_ "$bin"; local binpath="$x_"

    [ -f "$binpath" ] || {
        ___x_cmd_cosmo___add "$bin" || return $?
    }

    [ -n "$osarch" ] || {
        ___x_cmd os name_
        ___x_cmd os arch_
        osarch="$___X_CMD_OS_NAME_/$___X_CMD_OS_ARCH_"
    }


    case "$osarch" in
        linux/x64)      ___x_cmd_cosmo___rrun   assimilate-x8664.elf     -o "$tgt" "$binpath" ;;
        linux/arm64)    ___x_cmd_cosmo___rrun   assimilate-aarch64.elf   -o "$tgt" "$binpath" ;;
        darwin/x64)     ___x_cmd_cosmo___rrun   assimilate-x8664.macho   -o "$tgt" "$binpath" ;;
        *)              ___x_cmd_cmds cp "$binpath" "$tgt" ;;
    esac
}
