2.9 KiB
2.9 KiB
title | description | sidebar_label | slug | githubLocation | scriptLocation | repoLocation |
---|---|---|---|---|---|---|
Software Installation | Installs the list of software that correlates to the software group that was chosen. | 12 Software Installation | /scripts/after/run_onchange_after_12-install-packages.sh.tmpl | https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoiscripts/universal/run_onchange_after_12-install-packages.sh.tmpl | https://github.com/megabyte-labs/install.doctor/raw/master/home/.chezmoiscripts/universal/run_onchange_after_12-install-packages.sh.tmpl | home/.chezmoiscripts/universal/run_onchange_after_12-install-packages.sh.tmpl |
Software Installation
Installs the list of software that correlates to the software group that was chosen.
Overview
This script initializes the installation process that handles the bulk of the software package installations.
Source Code
#!/usr/bin/env bash
# @file Software Installation
# @brief Installs the list of software that correlates to the software group that was chosen.
# @description
# This script initializes the installation process that handles the bulk of the software package installations.
{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}
{{- $softwareGroup := nospace (cat "_" .host.softwareGroup) }}
{{- $softwareList := list (index .softwareGroups $softwareGroup | toString | replace "[" "" | replace "]" "") | uniq | join " " }}
# software: {{ $softwareList }}
# software map: {{ include (joinPath .chezmoi.homeDir ".local" "share" "chezmoi" "software.yml") | sha256sum }}
if command -v install-program > /dev/null; then
if command -v zx > /dev/null; then
logg info 'Installing packages defined in .chezmoidata.yaml under the .softwareGroups key'
logg info 'Installing: {{ $softwareList }}'
# Ask for the administrator password upfront
logg info 'A sudo password may be required for some of the installations'
sudo echo "Sudo access granted."
export DEBIAN_FRONTEND=noninteractive
export HOMEBREW_NO_ENV_HINTS=true
if ! command -v gcc-11; then
if command -v gcc; then
logg info 'gcc-11 command missing. Symlinking to gcc'
sudo ln -s "$(which gcc)" /usr/local/bin/gcc-11
else
logg warn 'gcc either needs to be added to the PATH or it is missing'
fi
fi
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
else
logg warn 'No ~/.bashrc file to import before running install-program'
fi
export LC_ALL="en_US.UTF-8"
logg info 'Printing environment variables for GO'
env | grep GO
install-program {{ $softwareList }}
# TODO - Figure out how to configure no logs to print to ~/.ansible.log -- should be printing to the value specified in the ansible.cfg
rm -rf "$HOME/.ansible.log"
else
logg error 'zx is not available'
fi
else
logg error 'install-program is not in the PATH. It should be located in ~/.local/bin.'
fi