-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathget_releases_files.sh
executable file
·42 lines (38 loc) · 1.82 KB
/
get_releases_files.sh
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
#!/usr/bin/env bash
GH_TOKEN=$(cat ~/.github_token)
MYDIR=$(
cd $(dirname $0)
pwd
)
declare -A TOOLMATCHES
TOOLMATCHES["gsa"]="greenbone-security-assistant"
TOOLMATCHES["gvmd"]="gvmd"
TOOLMATCHES["gvm-libs"]="gvm-libs"
TOOLMATCHES["gvm-tools"]="gvm-tools"
TOOLMATCHES["openvas-scanner"]="openvas"
TOOLMATCHES["openvas-smb"]="openvas-smb"
TOOLMATCHES["ospd"]="ospd"
TOOLMATCHES["ospd-openvas"]="ospd-openvas"
TOOLMATCHES["python-gvm"]="py3-gvm"
for name in gvmd gsa gvm-libs gvm-tools ospd ospd-openvas openvas-scanner openvas-smb python-gvm; do
echo "> ${name}"
jsonData=$(curl --silent \
-H "Authorization: token ${GH_TOKEN}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/greenbone/${name}/releases)
#echo "${jsonData}" >"jq_${name}.json"
#jsonData=$(cat "jq_${name}.json")
version=$(echo "${jsonData}" | jq -r .[].tag_name | grep '21\.[0-9]*\.[0-9]*$' -m1)
#version=$(jq -r .[].tag_name <"jq_${name}.json" | grep '21\.[0-9]*\.[0-9]*$' -m1)
echo ">>> ${name}: ${version}"
LOCALDIR="${MYDIR}/aports2/community/${TOOLMATCHES[$name]}/"
#rm -rf "${LOCALDIR}src/"
LOCALREPO="${MYDIR}/src/${TOOLMATCHES[$name]}"
#rm -rf "$LOCALREPO"
git clone https://github.com/greenbone/${name}.git "${LOCALREPO}" 2>/dev/null || git -C "${LOCALREPO}" pull
git -C "${LOCALREPO}" fetch --all --tags
git -C "${LOCALREPO}" checkout -qf "tags/${version}"
git -C "${LOCALREPO}" reset --hard HEAD
#echo "${jsonData}" | jq --arg PVERSION "${version}" -r '.[] | select(.tag_name | startswith($PVERSION)).tarball_url' <"jq_${name}.json" | xargs curl -L -o "./${name}_${version}.tar.gz"
#jq --arg PVERSION "${version}" -r '.[] | select(.tag_name | startswith($PVERSION)).tarball_url' <"jq_${name}.json" | xargs curl -L -o "./${name}_${version}.tar.gz"
done