Challenge image: embbed files into yaml recipe
This commit is contained in:
parent
ba3f4250f5
commit
ef17e1860e
7 changed files with 75 additions and 30 deletions
98
challenge/adlin
Executable file
98
challenge/adlin
Executable file
|
|
@ -0,0 +1,98 @@
|
|||
#!/bin/sh
|
||||
|
||||
# FUNCTIONS ###########################################################
|
||||
|
||||
# script usage
|
||||
usage() {
|
||||
>&2 cat <<EOF
|
||||
ADLIN token generator
|
||||
EOF
|
||||
}
|
||||
|
||||
# token generator
|
||||
token_generator() {
|
||||
{
|
||||
echo -n ${PKEY}
|
||||
for d
|
||||
do
|
||||
echo -n :${d}
|
||||
done
|
||||
} | sha512sum | cut -d ' ' -f 1
|
||||
}
|
||||
|
||||
# JSON token format helper
|
||||
token_format() {
|
||||
local TID=$1
|
||||
local TOKEN=$2
|
||||
shift 2
|
||||
|
||||
[ $# -gt 0 ] && {
|
||||
local DATA=',
|
||||
"data": [';
|
||||
for d; do
|
||||
[ -z "$Z" ] && Z=1 || DATA="$DATA, "
|
||||
DATA="$DATA\"$d\""
|
||||
done
|
||||
DATA="$DATA]"
|
||||
}
|
||||
|
||||
local challenge=
|
||||
[ -z "${TID}" ] || {
|
||||
challenge="
|
||||
\"challenge\": ${TID},"
|
||||
}
|
||||
|
||||
cat <<EOF
|
||||
{
|
||||
"login": "${ULGN}",${challenge}
|
||||
"token": "${TOKEN}"${DATA}
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
# /proc/cmdline parser (from Gentoo Wiki)
|
||||
cmdline() {
|
||||
local value
|
||||
value=" $(cat /proc/cmdline) "
|
||||
value="${value##* $1=}"
|
||||
value="${value%% *}"
|
||||
[ "$value" != "" ] && echo "$value"
|
||||
}
|
||||
|
||||
|
||||
# GLOBAL VARIABLES ####################################################
|
||||
|
||||
ULGN=$(cmdline adlin.login)
|
||||
PKEY=$(cmdline adlin.key)
|
||||
|
||||
|
||||
# MAIN ################################################################
|
||||
|
||||
[ $# -lt 1 ] && { usage; exit 1; }
|
||||
|
||||
TOKENID="$1"
|
||||
case "${TOKENID}" in
|
||||
token1|token2)
|
||||
HDATA=42
|
||||
;;
|
||||
token3|token6)
|
||||
DATA=$(date +%s%N)
|
||||
;;
|
||||
token4)
|
||||
echo "${TOKENID} is not here! Perhaps it has been accidentally deleted?" >&2
|
||||
exit 2
|
||||
;;
|
||||
token5)
|
||||
HDATA=$(dig +short +time=1 +tries=0 adlin.nemunai.re $2 | sed 's/["\\]//g') || {
|
||||
echo "Try again! Your resolver settings seems not good :(" >&2
|
||||
exit 3
|
||||
}
|
||||
echo $HDATA | grep "not here" 2> /dev/null && exit 3
|
||||
;;
|
||||
*)
|
||||
DATA=$@
|
||||
TOKENID=
|
||||
;;
|
||||
esac
|
||||
|
||||
token_format "${TOKENID#token}" "$(token_generator ${TOKENID#token} ${HDATA} ${DATA})" ${DATA}
|
||||
Reference in a new issue