diff --git a/.chezmoiignore b/.chezmoiignore index ef0c64d..19c5297 100644 --- a/.chezmoiignore +++ b/.chezmoiignore @@ -13,3 +13,4 @@ .config/waybar launch-sway.sh {{ end }} +install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..3bd6ee0 --- /dev/null +++ b/install.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# -e: exit on error +# -u: exit on unset variables +set -eu + +if ! chezmoi="$(command -v chezmoi)"; then + bin_dir="${HOME}/.local/bin" + chezmoi="${bin_dir}/chezmoi" + echo "Installing chezmoi to '${chezmoi}'" >&2 + 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 + sh -c "${chezmoi_install_script}" -- -b "${bin_dir}" + unset chezmoi_install_script bin_dir +fi + +# POSIX way to get script's dir: https://stackoverflow.com/a/29834779/12156188 +script_dir="$(cd -P -- "$(dirname -- "$(command -v -- "$0")")" && pwd -P)" + +set -- init --apply --source="${script_dir}" + +echo "Running 'chezmoi $*'" >&2 +# exec: replace current process with chezmoi +exec "$chezmoi" "$@"