#compdef uname

typeset -A _uname_args

if _pick_variant gnu="Free Soft" unix --version; then
  case $LANG in
    (de_DE.UTF-8)
       _uname_args=(
             all               "alle Informationen ausgeben"
             kernel-name       "Namen des Kernels ausgeben"
             nodename          "Netzwerknamen der Maschine ausgeben"
             kernel-release    "Release-Nummer des Kernels ausgeben"
             kernel-version    "Version des Kernels ausgeben"
             machine           "Maschinentyp (Hardware) ausgeben"
             processor         "Typ des Prozessors ausgeben (oder das Wort unknown)"
             hardware-platform "Hardwareplattform ausgeben (oder das Wort unknown)"
             operating-system  "Namen des Betriebssystems ausgeben"
             help              "diese Hilfe anzeigen und beenden"
             version           "Versionsinformation anzeigen und beenden"
       )
    ;;
    (*)
       _uname_args=(
             all               "print all information"
             kernel-name       "print the kernel name"
             nodename          "print the network node hostname"
             kernel-release    "print the kernel release"
             kernel-version    "print the kernel version"
             machine           "print the machine hardware name"
             processor         "print the processor type or \"unknown\""
             hardware-platform "print the hardware platform or \"unknown\""
             operating-system  "print the operating system"
             help              "display this help and exit"
             version           "output version information and exit"
       )
    ;;
  esac

  _arguments \
        '(--all -a)'{--all,-a}'['$_uname_args[all]']' \
        '(--kernel-name -s)'{--kernel-name,-s}'['$_uname_args[kernel-name]']' \
        '(--nodename -n)'{--nodename,-n}'['$_uname_args[nodename]']' \
        '(--kernel-release -r)'{--kernel-release,-r}'['$_uname_args[kernel-release]']' \
        '(--kernel-version -v)'{--kernel-version,-v}'['$_uname_args[kernel-version]']' \
        '(--machine -m)'{--machine,-m}'['$_uname_args[machine]']' \
        '(--processor -p)'{--processor,-p}'['$_uname_args[processor]']' \
        '(--hardware-platform -i)'{--hardware-platform,-i}'['$_uname_args[hardware-platform]']' \
        '(--operating-system -o)'{--operating-system,-o}'['$_uname_args[operating-system]']' \
        '--help['$_uname_args[help]']' \
        '--version['$_uname_args[version]']'
else
#       TODO add options of a NON GNU implementation
fi
