blob: 1b95d7b10087d4f15a6e59ba6137a081ec13ec70 (
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
|
#!/bin/bash
# check for packages that need to be built, and build a list in the proper build order
# Details:
# https://github.com/archlinux32/builder/wiki/Build-system#get-package-updates
set -e
lock_file="/tmp/get-package-updates.lock"
# TODO:
# include repository of package customizations
declare -A repo_paths
repo_paths["packages"]="/usr/src/archlinux/packages"
repo_paths["community"]="/usr/src/archlinux/community"
base_dir="$(dirname "$(readlink -f "$0")")/.."
# Create a lock file for build list.
exec 9>"${lock_file}"
flock -n 9 || exit
# Update git repositories (official packages, community packages and the repository of package customizations).
for repo in "${repo_paths[@]}"; do
git -C "${repo}" pull
done
# Read previous git revision numbers from files.
declare -A old_repo_revisions
for repo in "${!repo_paths[@]}"; do
old_repo_revisions["${repo}"]="$(cat ${base_dir}/work/${repo}.revision)"
done
# TODO:
# Check modified packages from the last update, and put them to the build list.
# If a package is updated, but already on the rebuild list, then just update the git revision number.
# If a package is deleted, remove from the rebuild list, and add it to the deletion list.
# If a new package is added, then ensure that it's not on the deletion list.
# TODO:
# Put the list in the proper build order.
# Write the current git revision numbers to files.
for repo in "${!repo_paths[@]}"; do
git -C "${repo_paths["${repo}"]}" rev-parse HEAD > \
"${base_dir}/work/${repo}.revision"
done
rm -f "${lock_file}"
|