blob: 36ce4f752432313055833bee85d7f34ff72b1c2f (
plain)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p jq curl
function cleanup {
echo
popd >/dev/null
echo Shutting down container ...
sudo nixos-container stop hermes
}
pushd $(dirname $0) >/dev/null
echo Stopping container for update ...
sudo nixos-container stop hermes || exit 2
echo Updating container ...
sudo nixos-container update hermes --flake .#hermes-test || exit 2
echo Starting container ...
sudo nixos-container start hermes || exit 2
trap cleanup EXIT
sleep 0.1
IP=$(nixos-container show-ip hermes)
CURL_FLAGS='--location --silent'
echo
echo Checking that all the services are running :
declare -A PORTS
PORTS[quentin]=8080
PORTS[searx]=8081
PORTS[rss]=8083
PORTS[git]=8086
for SERVICE in "${!PORTS[@]}"
do
URL="http://$IP:${PORTS[$SERVICE]}/"
echo Checking connection to container version of $SERVICE.aristote.fr ...
RESULT=$(curl "$URL" $CURL_FLAGS --output /dev/null --write-out '%{http_code}\n')
if [[ ! "$RESULT" = 200 ]]
then
echo "Connection failed."
else
echo "Up and running at $URL !"
fi
done
echo Checking connection to container version of mesh.aristote.fr ...
URL="http://$IP:8085/health"
RESULT=$(curl "$URL" $CURL_FLAGS)
if [[ "$RESULT" != '{"status":"pass"}' ]]
then
echo "Connection failed."
else
echo "Up and running at $URL !"
fi
echo Done.
echo
echo Checking web keys directory :
URL_PREFIX="http://$IP:8084/.well-known/openpgpkey/aristote.vm"
KEYS="$(ls ../config/services/web/webkeydirectory/hu)"
for KEY in $KEYS
do
echo Checking key $KEY ...
RESULT=$(curl "$URL_PREFIX/hu/$KEY" $CURL_FLAGS --output /dev/null --write-out '%{http_code}\n')
if [[ ! "$RESULT" = 200 ]]
then
echo "Connection failed."
fi
done
echo Checking policy file ...
RESULT=$(curl "$URL_PREFIX/policy" $CURL_FLAGS --output /dev/null --write-out '%{http_code}\n')
if [[ ! "$RESULT" = 200 ]]
then
echo "Connection failed."
fi
echo Done.
echo
echo Checking cgit instance:
RESULT=$(curl "http://$IP:${PORTS[git]}/" $CURL_FLAGS)
echo "Checking that internal hyperlinks don't start with 'git' ..."
if $(echo "$RESULT" | grep --silent "=\'/git/")
then
echo "Broken hyperlinks detected."
fi
echo Checking that the default view of repositories is their tree ...
if $(echo "$RESULT" | grep --silent "href='/[^/]*/[^/]*/'")
then
echo "Broken hyperlinks detected."
fi
echo Done.
echo
echo Checking custom RSS bridges :
BRIDGES="$(ls ../config/services/web/rss/*Bridge.php | xargs basename -s Bridge.php)"
for BRIDGE in $BRIDGES
do
echo Checking bridge $BRIDGE ...
RESULT=$(curl "http://$IP:${PORTS[rss]}/?action=display&bridge=$BRIDGE&format=Plaintext" $CURL_FLAGS --output /dev/null --write-out '%{http_code}\n')
if [[ ! "$RESULT" = 200 ]]
then
echo "Connection failed."
fi
done
echo Done.
echo
echo Checking custom Searx engines :
declare -A QUERIES
QUERIES[alternativeto]=Searx
QUERIES[nlab]='Kan%20extension'
QUERIES[wfr]=Paris
QUERIES[wen]=Paris
for ENGINE in "${!QUERIES[@]}"
do
echo Checking engine $ENGINE ...
REQUEST_URL="http://$IP:${PORTS[searx]}/search?q=${QUERIES[$ENGINE]}+!$ENGINE&format=json"
JSON_RESULT=$(curl "$REQUEST_URL" $CURL_FLAGS)
RESULTS=$(echo $JSON_RESULT | jq '.results')
UNRESPONSIVE_ENGINES=$(echo $JSON_RESULT | jq '.unresponsive_engines')
if [[ ! "$UNRESPONSIVE_ENGINES" = '[]' ]]
then
echo "Engine not responsive."
elif [[ "$RESULTS" = [] ]]
then
echo "No results found."
fi
done
echo Done.
echo
read -n1 -srp "Press any key to stop the server."
|