Whilst reorganising my dotfiles I avoided superfluous dotfile managers and the limitations of the "version control $HOME" method by instead including first-line comments of the form <comment delimiter> ln <link name> in files which needed to be symlinked.
If we change our awk to just print, add a substitution for ~, ignore the .git directory when searching for files and package everything up in a function we end up with: