diff options
Diffstat (limited to 'ssh/Makefile')
| -rw-r--r-- | ssh/Makefile | 32 | 
1 files changed, 25 insertions, 7 deletions
diff --git a/ssh/Makefile b/ssh/Makefile index b16f051..e7bf102 100644 --- a/ssh/Makefile +++ b/ssh/Makefile @@ -1,29 +1,47 @@  .POSIX: +DYNAMIC_ADDRESSES != \ +	for f in ../.secrets/ssh/hostfetch/* ../.work/ssh/hostfetch/* hostfetch/*; do \ +		test ! -x "$$f" || printf '%s\n' "$$f"; \ +	done | sort -u | sed 's|^.*/\([^/]*[^/~]\)$$|\1|' +  install:  	-rm -f -- .ssh-config  	test ! -e .ssh-config && test ! -L .ssh-config  	printf '# %s\n' 'THIS FILE IS GENERATED from ~/.dotfiles/ssh/Makefile' \  	                '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' > .ssh-config -	printf '\n\n' >> .ssh-config +	chmod -- 600 .ssh-config  	if test -f config; then \ -		cat config >> .ssh-config; \ +		../cat-with-head -- config >> .ssh-config; \  	fi  	set config.d/* && if test -f "$$1"; then \ -		../cat-nonbackups -- "$$@" >> .ssh-config; \ +		../cat-nonbackups-with-head -- "$$@" >> .ssh-config; \  	fi  	if test -f ../.secrets/ssh/config; then \ -		cat ../.secrets/ssh/config >> .ssh-config; \ +		../cat-with-head -- ../.secrets/ssh/config >> .ssh-config; \  	fi  	set ../.secrets/ssh/config.d/* && if test -f "$$1"; then \ -		../cat-nonbackups "$$@" >> .ssh-config; \ +		../cat-nonbackups-with-head -- "$$@" >> .ssh-config; \  	fi  	if test -f ../.work/ssh/config; then \ -		cat ../.work/ssh/config >> .ssh-config; \ +		../cat-with-head -- ../.work/ssh/config >> .ssh-config; \  	fi  	set ../.work/ssh/config.d/* && if test -f "$$1"; then \ -		../cat-nonbackups "$$@" >> .ssh-config; \ +		../cat-nonbackups-with-head -- "$$@" >> .ssh-config; \  	fi +	set -e; \ +	for name in $(DYNAMIC_ADDRESSES); do \ +		if test -x "../.secrets/ssh/hostfetch/$$name"; then \ +			addr="$$("../.secrets/ssh/hostfetch/$$name")"; \ +		elif test -x "../.work/ssh/hostfetch/$$name"; then \ +			addr="$$("../.work/ssh/hostfetch/$$name")"; \ +		else \ +			addr="$$("hostfetch/$$name")"; \ +		fi; \ +		test -n "$$addr"; \ +		sed "s/%$${name}%/$${addr}/g" -- "$$@" < .ssh-config > .ssh-config~; \ +		mv -- .ssh-config~ .ssh-config; \ +	done  	mkdir -p -- ~/.ssh  	test ! -e ~/.ssh/config || test -L ~/.ssh/config  	test ! -e ~/.ssh/config || test -f ~/.ssh/config  | 
