#!/bin/bash arch () { uname -m } get_arch () { local arch arch=$(uname -m) [[ ! $arch ]] && return 1 case $arch in x86_64) binArch='amd64' ;; armhf) binArch='armv6' ;; armv7) binArch='armv7' ;; aarch64) binArch='arm64' ;; ppc64el|ppc64le) binArch='ppc64le' ;; s390x) binArch='s390x' ;; .*386.*) binArch='amd32' ;; *) return 2 ;;\ esac; echo $binArch } function get_os () { declare -l os os=$(uname -s) echo $os } function get_platform() { echo $(get_os)-$(get_chip_type) } hostinfo () { hostnamectl echo -e "--------------------------" echo kernel: $(uname -r) echo chip architecture: $(uname -m) echo -e "--------------------------" cat /etc/os-release echo -e "--------------------------" [[ -f /etc/upstream-release/lsb-release ]] && cat /etc/upstream-release/lsb-release } # function get_distro() { # source /etc/os-release # declare distros=${@:-"arch alpine debian ubuntu"} # # echo $ID $ID_LIKE # for distro in $distros; do # echo $distro $ID $ID_LIKE # [[ $ID =~ $distro ]] && echo $distro && return 0 # [[ $ID_LIKE =~ $distro ]] && echo $distro && return 0 # done # return 1 # } # function get_release() { # } get_distro() { local file=/etc/upstream-release/lsb-release if [[ -f $file ]]; then echo $(cat $file | tr [:upper:] [:lower:] | grep -Poi '(debian|ubuntu|red hat|centos|arch|alpine)' | uniq) return 0 else file=/etc/os-release if [[ -f $file ]]; then echo $(cat $file | tr [:upper:] [:lower:] | grep -Poi '(debian|ubuntu|red hat|centos|arch|alpine)' | uniq) fi fi } # function get_distro() { # /bin/cp /etc/os-release /tmp/os-release.tmp # if [[ $1 == "-d" ]]; then # shift 1 # # docker run -it --name get_container_os --rm --entrypoint cat $1 /etc/os-release # docker create --name dummy $1 > /dev/null # docker cp -L dummy:/etc/os-release /tmp/os-release.tmp # docker rm -f dummy > /dev/null # # docker run -it --name get_container_os --rm --entrypoint cat $1 /etc/os-release > /tmp/container-os.tmp 2> /dev/null # shift 1 # fi # source /tmp/os-release.tmp # declare valid=${@:-"alpine debian ubuntu"} # # echo $ID $ID_LIKE # [[ "${valid}" =~ $ID ]] && echo $ID && return 0 # [[ "${valid}" =~ $ID_LIKE ]] && echo $ID_LIKE && return 0 # return 1 # }