File: update.sh

package info (click to toggle)
syncthingtray 2.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,124 kB
  • sloc: cpp: 34,081; xml: 1,705; java: 1,258; sh: 97; javascript: 54; makefile: 25
file content (46 lines) | stat: -rwxr-xr-x 1,716 bytes parent folder | download
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
#!/bin/bash
set -e
shopt -s nocasematch
shopt -s nullglob

libsyncthingdir=$(dirname "$0")
syncthingrepodir=$libsyncthingdir/go/src/github.com/syncthing/syncthing
special_release_regex=${LIBSYNCTHING_IGNORE_REGEX:-rc|beta|debian}
latest_tag=

echo '==> Updating Syncthing repo'
git -C "$syncthingrepodir" remote update

echo '==> Getting latest tag/release'
for tag in $(git -C "$syncthingrepodir" tag -l --sort=-version:refname 'v*'); do
    if [[ $tag =~ $special_release_regex ]]; then
        continue
    fi
    if [[ $tag ]]; then
        latest_tag=$tag
        break
    fi
done
if [[ -z $latest_tag ]]; then
    echo 'Unable to find latest release tag'
    exit -1
fi
echo "Latest Syncthing release: $latest_tag"

echo '==> Updating CMakeLists.txt'
sed -i -e "s|^\(set(META_SYNCTHING_VERSION \"\(.*\)\")\).*$|set(META_SYNCTHING_VERSION \"$latest_tag\")|" "$libsyncthingdir/CMakeLists.txt"

echo '==> Rebasing libsyncthing'
if git -C "$syncthingrepodir" rev-parse --verify "libsyncthing-$latest_tag" > /dev/null; then
    echo "Nothing to do: A libsyncthing branch \"libsyncthing-$latest_tag\" for the latest release already exists."
    exit 0
fi
latest_branch=libsyncthing-${LIBSYNCTHING_LATEST_SUFFIX:-latest}
git -C "$syncthingrepodir" checkout "$latest_branch"
git -C "$syncthingrepodir" rebase "$latest_tag"
git -C "$syncthingrepodir" branch "libsyncthing-$latest_tag"

echo '==> Pushing updated/new libsyncthing branches to GitHub'
git -C "$syncthingrepodir" config remote.all.url > /dev/null && remote=all || remote=martchus
git -C "$syncthingrepodir" push -fu "$remote" "$latest_branch:$latest_branch"
git -C "$syncthingrepodir" push -u "$remote" "libsyncthing-$latest_tag:libsyncthing-$latest_tag"