check_linux 995 B

123456789101112131415161718192021222324252627282930313233343536
  1. autoload -Uz log_info log_status log_error log_debug log_warning
  2. log_debug 'Checking for apt-get...'
  3. if (( ! ${+commands[apt-get]} )) {
  4. log_error 'No apt-get command found. Please install apt'
  5. return 2
  6. } else {
  7. log_debug "Apt-get located at ${commands[apt-get]}"
  8. }
  9. local -a dependencies=("${(f)$(<${SCRIPT_HOME}/.Aptfile)}")
  10. local -a install_list
  11. local binary
  12. for dependency (${dependencies}) {
  13. local -a tokens=(${(s: :)dependency//(,|:|\')/})
  14. if [[ ! ${tokens[1]} == 'package' ]] continue
  15. if [[ ${#tokens} -gt 2 && ${tokens[3]} == 'bin' ]] {
  16. binary=${tokens[4]}
  17. } else {
  18. binary=${tokens[2]}
  19. }
  20. if (( ! ${+commands[${binary}]} )) install_list+=(${tokens[2]})
  21. }
  22. local -a _quiet=('' '--quiet')
  23. log_debug "List of dependencies to install: ${install_list}"
  24. if (( ${#install_list} )) {
  25. if (( ! ${+CI} )) log_warning 'Dependency installation via apt may require elevated privileges'
  26. sudo apt-get -y install ${install_list} ${_quiet[(( (_loglevel == 0) + 1 ))]}
  27. }