Add a notion of a `substituted dotfile', which is installed by applying
a simple sed(1) script to a skeleton rather than messing with symbolic
links.
Install some basic PulseAudio configuration. Pulse needs this hacking
because it doesn't let us refer to our home directory without an absolute
pathname, which is a total nuisance.
Adopt .gitconfig under this scheme. The source moves to dot/gitconfig.in
now.
--- /dev/null
+### -*-conf-*-
+###
+### PulseAudio configuration
+
+## Include system configuration. This fairly sane on most systems.
+.include /etc/pulse/default.pa
+
+## Take over the system feep. We can just about twiddle the feep sample
+## using the Gnome thing, because it fiddles the symlink in this directory.
+## PulseAudio only rechecks the link after evicting the sample from its
+## cache, but that's good enough. What is annoying is that we have to
+## hardwire the home directory here.
+load-sample-dir-lazy @home@/.local/share/sounds/__custom
+load-module module-x11-bell sample=bell-window-system.ogg
+## Substitute things which need substituting.
+dotfilessubst="
+ gitconfig
+ pulse-default.pa.in:.pulse/default.pa"
+echo "Installing dotfiles with substitutions..."
+for d in $dotfilessubst; do
+ case $d in
+ *:*) target=${d#*:} d=${d%%:*};;
+ *) target=.$d d=$d.in;;
+ esac
+ ft=$HOME$sub/$target
+ dir=${ft%/*}
+ mkdir -p $dir
+ sed "
+1i\
+### generated by $here/setup; do not edit!\
+
+/@home@/ s\a\a$HOME\ag
+/@releasekey@/ s\a\a$(bin/mdw-conf release-key 481334C2)\ag
+/@gitignore@/ s\a\a$(bin/mdw-conf gitignore $here/git/gitignore)\ag
+" dot/$d >$ft.new
+ mv $ft.new $ft
+ echo " $target"
+done
+echo " all done."
+
## Symlink backgrounds.
backgrounds="
jue-peek.jpg
## Symlink backgrounds.
backgrounds="
jue-peek.jpg
-###--------------------------------------------------------------------------
-### Process the Git configuration.
-
-echo -n "Installing Git configuration:"
-sed "
-1i\
-### generated by $here/setup; do not edit!\
-
-/@releasekey@/ s::$(bin/mdw-conf release-key 481334C2):g
-/@gitignore@/ s::$(bin/mdw-conf gitignore $here/git/gitignore):g
-" git/gitconfig >$HOME/.gitconfig.new
-mv $HOME/.gitconfig.new $HOME/.gitconfig
-echo " done."
-
###--------------------------------------------------------------------------
### Install useful scripts included in this package.
###--------------------------------------------------------------------------
### Install useful scripts included in this package.