-
Notifications
You must be signed in to change notification settings - Fork 0
/
update.sh
executable file
·62 lines (51 loc) · 1.02 KB
/
update.sh
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
#!/bin/sh
update_repositories () {
sudo pacman -Sy
}
date_based_folder () {
_today=`date +%F`
_try=${_today}
_i=0
while [ -e ${_try} ]
do
_try="${_today}.`printf %03d ${_i}`"
_i=$((${_i}+1))
done
mkdir "${_try}" && {
OUTDIR="${_try}"
} || {
echo "Error: couldn't make ${_try}" 1>&2
exit 1
}
}
save_package_list () {
pacman -Qu > ${PKGLIST}
}
make_great_hashes () {
_suffix="${1}"
for _pkg in `cat ${PKGLIST} | awk '{print $1}'`
do
for _file in `pacman -Ql ${_pkg} | cut --complement -d' ' -f1`
do
[ -f "${_file}" ] && {
sudo sha256sum "${_file}"
}
done > "${OUTDIR}/${_pkg}-${_suffix}"
done
}
do_a_real_update () {
echo y | sudo pacman -Su 2>${STDERR} | tee ${STDOUT}
}
set_globals () {
PKGLIST="${OUTDIR}/packages"
STDOUT="${OUTDIR}/stdout"
STDERR="${OUTDIR}/stderr"
}
date_based_folder
set_globals
echo "Outputting to ${OUTDIR}"
update_repositories
save_package_list
make_great_hashes presums
do_a_real_update
make_great_hashes postsums