-
Notifications
You must be signed in to change notification settings - Fork 3
/
generate_lists
executable file
·105 lines (91 loc) · 2.6 KB
/
generate_lists
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/bash
# Updater-ng configuration lists generating script
# (C) 2018-2020 CZ.NIC, z.s.p.o.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -eu
FEED_NAME="updater-lists"
src_dir="$(readlink -f "${0%/*}")"
source "$src_dir/helpers/generate_common.sh"
output_path=
sign_key=
prepare="n"
while [ $# -gt 0 ]; do
case "$1" in
-h|--help)
echo "This script generates updater-ng configuration lists from Turris OS build repository."
echo "Usage: $0 [OPTION]... [OUTPUT_PATH]"
echo
echo "Options:"
echo " --help, -h"
echo " Prints this help text."
echo " --sign KEY"
echo " Sign lists with given KEY and usign utility"
echo " --prepare"
echo " Only prepare in current directory. Do not generate lists."
echo " --debug"
echo " Run this script in debug mode"
exit
;;
--sign)
shift
sign_key="$1"
;;
--prepare)
prepare="y"
;;
--debug)
set -x
;;
*)
if [ -z "$output_path" ]; then
output_path="$1"
else
echo "Unknown option: $1"
exit 1
fi
;;
esac
shift
done
[ -n "$output_path" ] || output_path="generated_lists"
output_path="$(readlink -f "$output_path")"
[ -f "$src_dir/feeds.conf" ] || \
die "This script has to be in the same directory as feeds.conf file."
set_protected_build_dir "lists"
url="$(get_feed "#" "$FEED_NAME" "$src_dir/feeds.conf")"
tos_version="$("$src_dir/helpers/turris-version.sh" version)"
git_clean_checkout "$FEED_NAME" "$url" "$build_dir"
patch_repository "$FEED_NAME" "$build_dir"
(
cd "$build_dir"
./configure \
-f "$src_dir/feeds.conf" \
-v "$tos_version" \
-d "$output_path"
)
[ "$prepare" = "n" ] || exit 0
make -C "$build_dir"
if [ -n "$sign_key" ]; then
get_usign
find "$output_path" -name '*.lua' -print0 | while read -r -d '' f; do
"$USIGN" -S -m "$f" -s "$sign_key"
done
fi
echo "$tos_version" > "$output_path/turris-version"
cat > "$output_path/git-hash" <<EOF
Project was build from following repositories:
* turris-build: $(git_remote_hash "$src_dir")
* $FEED_NAME: $(git_remote_hash "$build_dir")
EOF