configs  Artifact [fda990d9fe]

Artifact fda990d9feef0a4af47629379ca3ece5d1a05941ea0bad992e5c4c661fd38dd1:

  • Executable file setup.sh — part of check-in [6ee022af75] at 2023-04-01 11:18:39 on branch trunk — setup.sh: Remove remnants of fish (user: js size: 1857)

#!/bin/sh
rel_dir="${PWD#$HOME/}"
echo "Configs relative to home in $rel_dir."

have() {
	which $1 >/dev/null 2>&1
}

link_file() {
	if [ ! -e "$HOME/$2" ]; then
		echo "Symlinking $HOME/$2 -> $3$rel_dir/$1…"
		ln -s "$3$rel_dir/$1" "$HOME/$2"
	else
		echo "$HOME/$2 already exists, skipping…"
	fi
}

mkdir -p $HOME/.config
have cvs && link_file cvsrc .cvsrc
if have fossil; then
	echo "Setting global fossil settings…"

	fossil set --global autosync 0
	fossil set --global editor 'vim -c "se ft=gitcommit"'
	fossil set --global mv-rm-files 1

	if have gpg2; then
		gpg="gpg2"
	elif have gpg; then
		gpg="gpg"
	else
		gpg=":"
	fi

	gpg_key="7395312F"
	if $gpg --list-secret-keys $gpg_key &>/dev/null; then
		fossil set --global pgp-command \
			"$gpg -u $gpg_key --clearsign -o"
		fossil set --global clearsign 1
	else
		fossil unset --global pgp-command
		fossil unset --global clearsign
	fi
fi
have git && link_file git .config/git ../
if have gpg || have gpg2; then
	mkdir -p $HOME/.local/share/gnupg
	link_file gnupg/gpg.conf .local/share/gnupg/gpg.conf ../../../
fi
have mpv && link_file mpv .config/mpv ../
have sway && link_file sway .config/sway ../
have tmux && link_file tmux .config/tmux ../
have vim && link_file vim .config/vim ../
have yt-dlp && link_file yt-dlp .config/yt-dlp ../
have zsh && link_file zshrc .zshrc
if have ssh; then
	mkdir -p $HOME/.ssh
	link_file ssh/config .ssh/config ../
fi

if test x"$(uname -s)" = x"Darwin"; then
	for i in "Keyboard Layouts/*"; do
		dest="$HOME/Library/$i"
		# This does not like being symlinked…
		if [ ! -e "$dest" ]; then
			echo "Hardlinking $i -> $dest"
			ln "$i" "$dest"
		else
			echo "$dest already exists, skipping…"
		fi
	done
elif have startx; then
	link_file Xdefaults .Xdefaults
	link_file Xmodmap .Xmodmap
	link_file xinitrc .xinitrc
	link_file xscreensaver .xscreensaver
fi