forked from apnex/vrni
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmod.command
executable file
·52 lines (49 loc) · 1.11 KB
/
mod.command
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
#!/bin/bash
if [[ $(readlink -f $0) =~ ^(.*)/([^/]+)$ ]]; then
WORKDIR=${BASH_REMATCH[1]}
FILE=${BASH_REMATCH[2]}
if [[ ${FILE} =~ ^[^.]+[.](.+)[.]sh$ ]]; then
TYPE=${BASH_REMATCH[1]}
fi
fi
STATEDIR=${WORKDIR}/state
JQDIR=${WORKDIR}/jq
DRVDIR=${WORKDIR}/drv
printf '%s' "${WORKDIR}" >${DRVDIR}/link.cmd
source ${DRVDIR}/mod.core
# build filter
function cmd {
local COMMAND=${1}
case "${COMMAND}" in
watch)
watch -t -c -n 3 "${WORKDIR}/${FILE} 2>/dev/null"
;;
json)
local PAYLOAD=$(payload)
setContext "${PAYLOAD}" "${TYPE}"
echo "${PAYLOAD}" | jq --tab .
;;
filter)
local FILTER=${2}
local PAYLOAD=$(filter "$(payload)" "${FILTER}")
setContext "${PAYLOAD}" "${TYPE}"
buildTable "${PAYLOAD}"
;;
*)
local PAYLOAD=$(payload)
setContext "${PAYLOAD}" "${TYPE}"
buildTable "${PAYLOAD}"
;;
esac
}
function payload {
local INPUT=$(eval $(drv "${TYPE}")) # link to drv
local MOO="MOO"
#local INPUT=$(${WORKDIR}/drv/drv.data.list.sh)
local PAYLOAD=$(echo "${INPUT}" | jq -r "$(run)")
printf "${PAYLOAD}"
}
function drv {
local DRIVER=${1}
printf "${WORKDIR}/drv/drv.${DRIVER}.sh"
}