#!/bin/sh set -e confdir="${XDG_CONFIG_HOME:-$HOME/.config}" bindir="${BINDIR:-$HOME/bin}" USE_X_SCRIPTS="${USE_X_SCRIPTS:-NO}" setLink() { src="" dest="" while [ $# -gt 0 ] ; do case $1 in -s) src="$2"; shift ; shift ;; -d) dest="$2"; shift ; shift ;; *) echo "unknown arg $1 invalid usage"; exit 1; ;; esac ; done if [ -e "$dest" ] && ! [ -L "$dest" ] ; then echo "Warning: $dest is not a link, no action taken" return fi if [ -L "$dest" ] || [ -e "$dest" ] ; then rm "$dest" fi ln -s "$src" "$dest" } for _f in dotfiles/* ; do src="$(pwd)/$_f" dest="$HOME/.$(basename "$_f")" if ! [ -f "$src" ] ; then continue fi setLink -s "$src" -d "$dest" done _nvimdir="${confdir}/nvim" if ! [ -d "$_nvimdir" ] ; then mkdir "$_nvimdir" fi setLink -s "$(pwd)/dotfiles/nvim/init.lua" -d "$_nvimdir/init.lua" _ghosttydir="${confdir}/ghostty" if ! [ -d "$_ghosttydir" ] ; then mkdir "$_ghosttydir" fi setLink -s "$(pwd)/dotfiles/ghostty/config" -d "$_ghosttydir/config" setLink -s "$(pwd)/dotfiles/ghostty/retro.glsl" -d "$_ghosttydir/retro.glsl" if ! [ -d "$bindir" ] ; then mkdir "$bindir" ; fi for _f in bin/* ; do src="$(pwd)/$_f" dest="${bindir}/$(basename "$_f")" setLink -s "$src" -d "$dest" done if [ "$(uname)" != "Darwin" ] \ && [ -n "$DISPLAY" ] && [ "$XDG_SESSION_TYPE" != "wayland" ] \ && [ "$USE_X_SCRIPTS" = "YES" ] ; then if ! [ -d "$HOME/x" ] ; then mkdir "$HOME/x" ; fi for _f in x/* ; do src="$(pwd)/$_f" dest="$HOME/x/$(basename "$_f")" setLink -s "$src" -d "$dest" done fi