diff options
-rwxr-xr-x | files/turris_checkout_repo_branch.sh | 102 | ||||
-rwxr-xr-x | templates/turris.run | 5 |
2 files changed, 3 insertions, 104 deletions
diff --git a/files/turris_checkout_repo_branch.sh b/files/turris_checkout_repo_branch.sh deleted file mode 100755 index ae88656..0000000 --- a/files/turris_checkout_repo_branch.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash -set -o errexit -o nounset - -print_usage() { - cat >&2 <<-EOF - Usage: ${0##*/} [-h] BRANCH [BOARD] - EOF -} - -print_help() { - print_usage - cat >&2 <<-EOF - Use this script to checkout turris-build repository relative to branch on - repo.turris.cz. It not only checkouts exact commit in turris-build - repository, but it also modifies feeds.conf file so exactly same feeds are - used as they were used to build files on server. - - BRANCH argument is required and is target publish branch (Do not mix this - with git branch of same name). - BOARD is optional argument used to specify different board. In default - 'omnia' is used. This is available because sometimes versions for boards - are not in sync and can differ. It should be in most cases safe to use - default but if you encounter problems you can try setting appropriate - board. - - Options: - -h, --help Print this help text - EOF -} - -target="" -board="" - -declare -A long2short=( ["help"]="h" ) -dashdash="n" -while [ "$OPTIND" -le "$#" ]; do - argument="${!OPTIND}" - if [ "$dashdash" = "n" ] && getopts ":h" opt; then - if [ "${argument:0:2}" = "--" ]; then - longopt="${argument:2}" - if [ -v long2short["$longopt"] ]; then - opt="${long2short[$longopt]}" - else - OPTARG="$argument" - fi - fi - case "$opt" in - h) - print_help - exit 0 - ;; - \?) - echo "Illegal option: $OPTARG" - exit 1 - ;; - esac - continue - elif [ "$argument" == "--" -a "$dashdash" = "n" ]; then - dashdash="y" - continue - elif [ -z "$target" ]; then - target="$argument" - elif [ -z "$board" ]; then - board="$argument" - else - echo "Unexpected argument: $argument" - exit 1 - fi - ((OPTIND = OPTIND + 1)) -done - -[ -z "$target" ] && { - print_usage - exit 1 -} -[ -z "$board" ] && board="omnia" - -[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" != "true" ] && { - echo "Current working directory is not in git repository" - exit 1 -} - -toplevel="$(git rev-parse --show-toplevel)" - -hashes="$(curl "https://repo.turris.cz/$target/$board/packages/git-hash" | \ - tail -n +2 | grep -v '^$' | sed 's/^ \* //;s/: /:/')" - -get_hash() { - awk -F: -vname="$1" '$1 == name { print $2 }' <<<"$hashes" -} - -# Initaly checkout turris-build -git checkout "$(get_hash turris-build)" - -# And secondly modify feeds so we are modifying appropriate version -while read -r tp name url vars; do - [ "$tp" = "#" ] && fullname="$name" || fullname="feeds/$name" - githash="$(get_hash "$fullname")" - [ -n "$githash" ] && url="$(sed "s/[;^].*$//;s/$/\^$githash/" <<<"$url")" - echo "$tp" "$name" "$url" "$vars" -done < "$toplevel/feeds.conf" >feeds.conf.new -mv feeds.conf.new feeds.conf diff --git a/templates/turris.run b/templates/turris.run index 0699418..4d87544 100755 --- a/templates/turris.run +++ b/templates/turris.run @@ -24,10 +24,11 @@ if [ -z "$CLEAN" ] && [ -f "$WORKSPACE/openwrt-git-hash" ] && cmp -s git-hash "$ else echo_info "Building new version of SDK" echo_stage "Get turris-build" - git_fetch_t "https://gitlab.labs.nic.cz/turris/turris-build.git" turris-build "$ANIMAL" + # TODO once TOS 5.2.0 lands in HBT we can just use HEAD + git_fetch_t "https://gitlab.labs.nic.cz/turris/turris-build.git" turris-build hbl ( cd turris-build - "$FILES/turris_checkout_repo_branch.sh" "$ANIMAL" + ./helpers/checkout_repo_branch.sh "$ANIMAL" cat feeds.conf patch -Np1 -r - < "$FILES/git-fetch-lock.patch" || true # just ignore if it fails ) |