#!/bin/sh # Set options to exit on error and unset variables set -eu # Check if chezmoi is installed, if not, install it if ! chezmoi="$(command -v chezmoi)"; then bin_dir="${HOME}/.local/bin" chezmoi="${bin_dir}/chezmoi" echo "🚀 Installing chezmoi to '${chezmoi}'" >&2 # Check if curl or wget is available to download chezmoi if command -v curl >/dev/null; then chezmoi_install_script="$(curl -fsSL get.chezmoi.io)" elif command -v wget >/dev/null; then chezmoi_install_script="$(wget -qO- get.chezmoi.io)" else echo "❌ To install chezmoi, you must have curl or wget installed." >&2 exit 1 fi # Run the installation script to install chezmoi sh -c "${chezmoi_install_script}" -- -b "${bin_dir}" unset chezmoi_install_script bin_dir fi # Determine the directory where this script is located script_dir="$(cd -P -- "$(dirname -- "$(command -v -- "$0")")" && pwd -P)" # Set arguments to initialize and apply chezmoi configurations set -- init --apply --source="${script_dir}" echo "🛠️ Running 'chezmoi $*'" >&2 # Execute chezmoi with the specified arguments exec "$chezmoi" "$@"