challenge: New script to display its own progression in CLI

This commit is contained in:
nemunaire 2023-02-21 04:06:36 +01:00
parent b594a05416
commit 057993203b
4 changed files with 51 additions and 0 deletions

View File

@ -103,6 +103,9 @@ files:
exec login $@ exec login $@
mode: "0755" mode: "0755"
- path: bin/progression
source: pkg/challenge/progression.sh
mode: "0755"
- path: bin/wg-adlin - path: bin/wg-adlin
contents: | contents: |
#!/bin/sh #!/bin/sh

36
pkg/challenge/progression.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
# /proc/cmdline parser (from Gentoo Wiki)
cmdline() {
local value
value=" $(cat /proc/cmdline) "
value="${value##* $1=}"
value="${value%% *}"
[ "$value" != "" ] && echo "$value"
}
PROGRESSION=$(curl -s -f "http://172.23.0.1/api/students/$(cmdline adlin.login)/progress")
[ $? -ne 0 ] && {
echo "Vous ne semblez pas connecté.e. Passez au moins la première étape pour afficher votre progression."
exit
}
for CHID in 0 1 2 3 4 5 10 11 12 6 7 8 9
do
[ $(echo "${PROGRESSION}" | jq -r ".\"${CHID}\".time") != "null" ] && echo -ne " \e[42;30;01m " || echo -ne " \e[41;01m "
case $CHID in
0) echo -n "rooted";;
6) echo -n "Hidden bonus";;
7) echo -n "ICMP bonus";;
8) echo -n "Disk bonus";;
9) echo -n "Email bonus";;
10) echo -n "WG tunnel up";;
11) echo -n "SSH key shared";;
12) echo -n "The end";;
*) echo -n "Step $CHID";;
esac
echo -en " \e[0m "
done
echo

View File

@ -519,6 +519,15 @@ files:
proxy_set_header X-Forwarded-By 172.23.0.1; proxy_set_header X-Forwarded-By 172.23.0.1;
proxy_redirect off; proxy_redirect off;
} }
location /api/students/ {
proxy_pass https://82.64.31.248;
proxy_ssl_server_name on;
proxy_ssl_name adlin.nemunai.re;
proxy_set_header Host adlin.nemunai.re;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-By 172.23.0.1;
proxy_redirect off;
}
} }
} }
mode: "0440" mode: "0440"

View File

@ -185,6 +185,9 @@ Pouvez-vous vous connecter?
# VALEUR RENVOYÉE # VALEUR RENVOYÉE
Une fois le premier palier passé, utilisez le programme **progression(1)** pour
avoir un aperçu de votre avancement.
Votre niveau d'avancement dans ce premier TP permet d'établir la première note Votre niveau d'avancement dans ce premier TP permet d'établir la première note
de ce cours. Les autres notes seront établies sur vos réponses à des questions de ce cours. Les autres notes seront établies sur vos réponses à des questions
de cours entre les sessions ainsi que sur les deux projets que l'on commencera de cours entre les sessions ainsi que sur les deux projets que l'on commencera