chiark
/
gitweb
/
~ian
/
ian-dotfiles.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
git: push default simple
[ian-dotfiles.git]
/
infra
/
substitute
1
#!/bin/bash
2
set -e
3
4
mode_subst () {
5
$fn >$bfn.new
6
}
7
8
mode_diff () {
9
mode_subst
10
diff -u $dot $bfn.new || test $? = 1
11
}
12
13
mode_install () {
14
mode_subst
15
mv -f $bfn.new $dot
16
}
17
18
mode=$1
19
case "$mode" in
20
subst|diff|install) ;;
21
*) echo >&2 'bad mode'; exit 1;
22
esac
23
shift
24
25
if [ $# = 0 ]; then
26
set templates/*.in
27
fi
28
29
for fn in "$@"; do
30
bfn=${fn%.in}
31
bfn=${bfn##*/}
32
bfn=${bfn#.}
33
bfn=templates/$bfn
34
fn=${bfn}.in
35
dot=$HOME/.${bfn#*/}
36
mode_$mode
37
done