Newer
Older
# Common functions for generate_lists and generate_medkit functions
# (C) 2018 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/>.
USIGN_VERSION=ef6419142a3b0fbcddcccf536e3c1880302c6f89
UPDATER_VERSION=master
SRC_USIGN="https://git.openwrt.org/project/usign.git"
SRC_UPDATER="https://gitlab.labs.nic.cz/turris/updater/updater.git"
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
# Git puller helper function (git_pull output_path source_url target)
git_get() {
local REPO="$1"
local OUTPUT="$2"
local BRANCH="${3:-master}"
if [ ! -d "$OUTPUT/.git" ]; then
mkdir -p "$(dirname "$OUTPUT")"
git clone "$REPO" "$OUTPUT"
(
cd "$OUTPUT"
git checkout "$BRANCH"
git submodule update --init --recursive
git clean -Xdf
)
return 1
else
(
cd "$OUTPUT"
git fetch
local REF="origin/$BRANCH"
git show-ref -q "$REF" || REF="$BRANCH" # Is this reference on remote or object
if ! git diff --quiet HEAD "$REF"; then
git reset --hard "$REF"
git submodule update --init --recursive
git clean -Xdf
return 1
fi
)
fi
}
# Wget puller helper function (wget_pull output_file source_url)
wget_get() {
local HREF="$1"
local OUTPUT="$2"
if [ ! -e "$OUTPUT" ] || [ $(expr $(date -u +%s) - $(stat -c %Z "$OUTPUT")) -gt 86400 ]; then
wget "$HREF" -O "$OUTPUT"
fi
}
get_usign() {
if ! git_get "$SRC_USIGN" turris-tools/usign "$USIGN_VERSION"; then
( cd turris-tools/usign && cmake . )
make -C turris-tools/usign
fi
export USIGN="$(pwd)/turris-tools/usign/usign"
}
# Automaticaly detect updater-ng's version from repository
# This function expects that tag of v* variant exists and that version of package
# is of format *-[09]+
# To be pedantic you should provide target board as second argument but if not
# provided then mox is used.
updater_ng_repodetect() {
local REPO="$1"
local BOARD="${2:-mox}"
local VERSION="$(curl "https://repo.turris.cz/$REPO/$BOARD/packages/turrispackages/Packages" | \
awk '/^Package: updater-ng$/,/^$/ { if ($1 == "Version:") { gsub("-.*$","",$2); print $2 } }')"
if [ -z "$VERSION" ]; then
echo "Detection of updater-ng version from repository failed. Using $UPDATER_VERSION instead."
else
UPDATER_VERSION="v$VERSION"
fi
}
get_updater_ng() {
if ! git_get "$SRC_UPDATER" turris-tools/updater-ng "$UPDATER_VERSION"; then
make -C turris-tools/updater-ng NO_DOC=1 LUA_COMPILE=no
fi
export PKGUPDATE="$(pwd)/turris-tools/updater-ng/bin/pkgupdate"
export OPKG_TRANS="$(pwd)/turris-tools/updater-ng/bin/opkg-trans"
}