61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
|
---
|
||
|
title: ASDF Plugins / Install
|
||
|
description: Configures ASDF plugins and ensures they are pre-installed.
|
||
|
sidebar_label: 15 ASDF Plugins / Install
|
||
|
slug: /scripts/after/run_onchange_after_15-install-asdf-packages.sh.tmpl
|
||
|
githubLocation: https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoiscripts/universal/run_onchange_after_15-install-asdf-packages.sh.tmpl
|
||
|
scriptLocation: https://github.com/megabyte-labs/install.doctor/raw/master/home/.chezmoiscripts/universal/run_onchange_after_15-install-asdf-packages.sh.tmpl
|
||
|
repoLocation: home/.chezmoiscripts/universal/run_onchange_after_15-install-asdf-packages.sh.tmpl
|
||
|
---
|
||
|
# ASDF Plugins / Install
|
||
|
|
||
|
Configures ASDF plugins and ensures they are pre-installed.
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
This script ensures ASDF is setup and then adds the plugins specified in the `~/.tool-versions` file. After that,
|
||
|
it ensures the ASDF plugins are pre-installed.
|
||
|
|
||
|
|
||
|
|
||
|
## Source Code
|
||
|
|
||
|
```
|
||
|
#!/usr/bin/env bash
|
||
|
{{- if (ne .host.distro.family "windows") }}
|
||
|
# @file ASDF Plugins / Install
|
||
|
# @brief Configures ASDF plugins and ensures they are pre-installed.
|
||
|
# @description
|
||
|
# This script ensures ASDF is setup and then adds the plugins specified in the `~/.tool-versions` file. After that,
|
||
|
# it ensures the ASDF plugins are pre-installed.
|
||
|
|
||
|
# dot_tool-versions.tmpl hash: {{ include "dot_tool-versions.tmpl" | sha256sum }}
|
||
|
|
||
|
{{- includeTemplate "universal/profile" }}
|
||
|
{{- includeTemplate "universal/logg" }}
|
||
|
|
||
|
if [ -f "$ASDF_DIR/asdf.sh" ] && [ -f ~/.tool-versions ]; then
|
||
|
logg info 'Sourcing asdf.sh'
|
||
|
. ${ASDF_DIR}/asdf.sh
|
||
|
cat .tool-versions | while read TOOL; do
|
||
|
logg info 'Installing ASDF plugin `'"$(echo "$TOOL" | sed 's/ .*//')"'`'
|
||
|
asdf plugin add "$(echo "$TOOL" | sed 's/ .*//')"
|
||
|
done
|
||
|
# Only proceed with installation if either DEBUG_MODE is enabled or ~/.cache/megabyte-labs/asdf-install is missing
|
||
|
# Added to save time between tests because PHP takes awhile to install
|
||
|
if [ "$DEBUG_MODE" == 'true' ] || [ ! -f "${XDG_CACHE_HOME:-$HOME/.cache}/megabyte-labs/asdf-install" ]; then
|
||
|
logg info 'Installing ASDF dependencies derived from `~/.tool-versions` via `asdf install`'
|
||
|
asdf install || EXIT_CODE=$?
|
||
|
if [ -n "$EXIT_CODE" ]; then
|
||
|
logg error 'Error installing the ASDF plugins specified in `~/.tool-versions`'
|
||
|
fi
|
||
|
mkdir -p "${XDG_CACHE_HOME:-$HOME/.cache}/megabyte-labs"
|
||
|
touch "${XDG_CACHE_HOME:-$HOME/.cache}/megabyte-labs/asdf-install"
|
||
|
fi
|
||
|
else
|
||
|
logg warn 'The `$ASDF_DIR/asdf.sh` or `~/.tool-versions` file is not present'
|
||
|
fi
|
||
|
|
||
|
{{ end -}}
|
||
|
```
|