diff --git a/home/.chezmoiscripts/ubuntu/run_once_00-setup-ssh.sh.tmpl b/home/.chezmoiscripts/ubuntu/run_once_00-setup-ssh.sh.tmpl index c3486a2a..a9dee926 100644 --- a/home/.chezmoiscripts/ubuntu/run_once_00-setup-ssh.sh.tmpl +++ b/home/.chezmoiscripts/ubuntu/run_once_00-setup-ssh.sh.tmpl @@ -2,6 +2,6 @@ {{ if eq .chezmoi.osRelease.idLike "debian" -}} {{ include "../install/ubuntu/common/ssh.sh" }} {{ else -}} - echo "Invalid linux distribution: {{ .chezmoi.osRelease.id }}" +{{ fail (printf "Invalid linux distribution: %s" .chezmoi.osRelease.id) }} {{ end -}} {{ end -}} diff --git a/home/.chezmoiscripts/ubuntu/run_once_04-install-misc.sh.tmpl b/home/.chezmoiscripts/ubuntu/run_once_04-install-misc.sh.tmpl index 376a81ba..b332164c 100644 --- a/home/.chezmoiscripts/ubuntu/run_once_04-install-misc.sh.tmpl +++ b/home/.chezmoiscripts/ubuntu/run_once_04-install-misc.sh.tmpl @@ -2,11 +2,10 @@ {{ if eq .chezmoi.osRelease.idLike "debian" -}} {{ include "../install/ubuntu/common/misc.sh" }} {{ else -}} - echo "Invalid linux distribution: {{ .chezmoi.osRelease.id }}" +{{ fail (printf "Invalid linux distribution: %s" .chezmoi.osRelease.id) }} {{ end -}} {{ else if eq .chezmoi.os "darwin" -}} {{ include "../install/macos/common/misc.sh" }} {{ else -}} - echo "Invalid OS: {{ .chezmoi.os }}" >&2 - exit 1 +{{ fail (printf "Invalid OS: %s" .chezmoi.os) }} {{ end -}} diff --git a/home/.chezmoiscripts/ubuntu/run_once_11-docker-ssh-server.sh.tmpl b/home/.chezmoiscripts/ubuntu/run_once_50-server-docker-ssh.sh.tmpl similarity index 100% rename from home/.chezmoiscripts/ubuntu/run_once_11-docker-ssh-server.sh.tmpl rename to home/.chezmoiscripts/ubuntu/run_once_50-server-docker-ssh.sh.tmpl diff --git a/home/.chezmoiscripts/ubuntu/run_once_50-server-install-mics.sh.tmpl b/home/.chezmoiscripts/ubuntu/run_once_50-server-install-mics.sh.tmpl new file mode 100644 index 00000000..6a26a69f --- /dev/null +++ b/home/.chezmoiscripts/ubuntu/run_once_50-server-install-mics.sh.tmpl @@ -0,0 +1,7 @@ +{{ if eq .chezmoi.os "linux" -}} +{{ if eq .chezmoi.osRelease.idLike "debian" -}} +{{ if eq .system "server" -}} +{{ include "../install/ubuntu/server/misc.sh" }} +{{ end -}} +{{ end -}} +{{ end -}} diff --git a/install/ubuntu/server/misc.sh b/install/ubuntu/server/misc.sh new file mode 100644 index 00000000..2d3a36bb --- /dev/null +++ b/install/ubuntu/server/misc.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail + +if [ "${DOTFILES_DEBUG:-}" ]; then + set -x +fi + +function is_available_gpu() { + if command -v nvidia-smi &> /dev/null; then + return 0 + else + return 1 + fi +} + +function install_gpu_related_packages() { + sudo apt-get update && sudo apt-get install --no-install-recommends -y \ + nvtop +} + +function install_opencv_related_packages() { + # To avoid the following error when running OpenCV-based applications: + # ImportError: libGL.so.1: cannot open shared object file: No such file or directory + sudo apt-get update && sudo apt-get install --no-install-recommends -y \ + libgl1-mesa-dev + +} + +function main() { + if is_available_gpu; then + install_gpu_related_packages + fi + + install_opencv_related_packages +} + +if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then + main +fi