#!/usr/bin/env bash # universal/common-dependencies hash: {{ include (joinPath ".chezmoitemplates" "universal" "common-dependencies") | sha256sum }} # debian/common-dependencies hash: {{ include (joinPath ".chezmoitemplates" "debian" "common-dependencies") | sha256sum }} {{ includeTemplate "universal/logg-before" }} {{- $packages := splitList " " (includeTemplate "universal/common-dependencies" .) -}} {{- $additionalPackages := splitList " " (includeTemplate "debian/common-dependencies" .) -}} {{- $packages = concat $packages $additionalPackages -}} ### Print dependency list logg 'Installing common dependencies using `apt-get`' logg info 'Dependencies: {{ $packages | sortAlpha | uniq | join " " -}}' ### Update apt-get cache logg info 'Running `sudo apt-get update`' sudo apt-get update ### Update debconf for non-interactive installation if command -v dpkg-reconfigure > /dev/null; then logg info 'Running sudo dpkg-reconfigure debconf -f noninteractive -p critical' sudo dpkg-reconfigure debconf -f noninteractive -p critical fi ### Install packages if they are not already present for PACKAGE in {{ $packages | sortAlpha | uniq | join " " -}}; do logg info 'Checking for presence of `'"$PACKAGE"'`' if dpkg -l "$PACKAGE" | grep -E '^ii' > /dev/null; then logg info 'The '"$PACKAGE"' package is already installed' else logg info 'Installing `'"$PACKAGE"'`' sudo apt-get install -y --no-install-recommends "$PACKAGE" || EXIT_CODE=$? if [ -n "$EXIT_CODE" ]; then logg error 'Error installing `'"$PACKAGE"'` via apt-get' logg info 'Proceeding with installation..' unset EXIT_CODE fi fi done