blob: 57461bcd9685c65a7ea1b447f3a4efdd00802bdc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/bin/sh
TIMESTART="$(date +%s)"
. "$HOME/.profile"
unset LANG # do not display custom locale in TTY
begintask() {
printf '%s ...' "$1"
}
endtask() {
EXIT_CODE=$?
[ $EXIT_CODE -eq 0 ] && echo ' OK' || echo ' ERROR'
return $EXIT_CODE
}
s() { # s for silent
"$@" 1> /dev/null 2> /dev/null
}
# ensure required packages are installed
begintask "installing packages"
"$XDG_CONFIG_HOME/yadm/install-arch" > pkgs.log 2>&1
endtask
[ $? -eq 0 ] && rm -f pkgs.log || echo " (saved output to pkgs.log)"
begintask "render templated files"
s yadm alt
endtask
begintask "ensure dynamic theme files"
s ~/.local/share/bin/mode dark
endtask
begintask "tidy up repository files"
s yadm reflog expire --expire-unreachable=now --all &&\
s yadm gc --prune=now
endtask
[ -e "$HOME/readme.md" ] ||\
[ $(yadm status -s "$HOME/readme.md" | wc -l) -gt 0 ] && (
begintask "removing readme.md from home"
cd
rm -f readme.md &&\
yadm update-index --skip-worktree readme.md
endtask
)
! command -v st > /dev/null && [ ! -e ~/.local/st ] && (
begintask "building st (terminal) from source"
mkdir -p ~/.local
cd ~/.local
s git clone --depth 1 https://git.pipeframe.xyz/lonkaars/st
cd st
s make -j
endtask
)
[ "$(find ~/.ssh -name 'id*' | wc -l)" -eq 0 ] && (
begintask "generating ssh keys"
s ssh-keygen -q -N "" < /dev/zero
endtask
)
# TODO: create a second repository for system configuration in /etc
TIMESTOP="$(date +%s)"
cat << EOF
bootstrap finished in $(( $TIMESTOP - $TIMESTART ))s!
follow-up steps to finish setup:
- install GPG keys
- install fonts
- make the switch to microsoft edge
EOF
|