Files
dotfiles/bin/ssh_config_gen
T

18 lines
848 B
Bash
Executable File

#!/bin/bash
# SSH config merge
if [ -e ~/.ssh/config.d ]; then
#if find ~/.ssh/config.d -mindepth 1 -print -quit | grep -q .; then
# Do we have config files in that directory?
if find ~/.ssh/config.d -print -quit | grep -q .; then
newestconfig=$(find ~/.ssh/config.d/* -printf '%TY-%Tm-%Td %.8TT %p\n' | sort -r | head -n1 | awk '{print $3}')
if [ "$newestconfig" -nt ~/.ssh/config ]; then
# We found a config that's newer than the generated config file, re-generate
[ -e ~/.ssh/config ] && mv ~/.ssh/config ~/.ssh/config.bak.$(date -Is)
# Lets preserve order, so you can have 00_generic 10_homestuff 20_work1 21_work2 and such
find ~/.ssh/config.d/* -type f -print0 | sort -z | xargs -0 -n1 cat > ~/.ssh/config
chmod 600 ~/.ssh/config
fi
fi
fi