File: shell_client.sh

package info (click to toggle)
ecflow 5.16.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 52,220 kB
  • sloc: cpp: 273,994; python: 22,754; sh: 3,643; perl: 774; xml: 333; f90: 204; ansic: 141; makefile: 63
file content (40 lines) | stat: -rw-r--r-- 1,116 bytes parent folder | download
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
#!/bin/sh

function meter_payload() {
   # $1 path_to_task
   # $2 password
   # $3 process_id
   # $4 try no
   # $5 meter_name
   # $6 meter value

    boost_preamble="22 serialization::archive 10 0 0 0 1 2"
    meter_cmd="8 MeterCmd 1 0 0 0 0 0 0"

    path_to_task=$1
    path_to_task_size=${#path_to_task}
    password=$2
    password_size=${#password}
    process_id=$3
    process_id_size=${#process_id}
    try_no=$4
    meter_name=$5
    meter_name_size=${#meter_name}
    meter_value=$6

    data="$boost_preamble $meter_cmd $path_to_task_size $path_to_task $password_size $password $process_id_size $process_id $try_no $meter_name_size $meter_name $meter_value"
    header=$(printf '%8.8s' $(echo "obase=16; ${#data}" | bc) )

    payload=$header$data
    return "$payload"
}

path_to_task=${ARG_PATH:-"/example/path/to/task"}
password=${ARG_PASSWORD:-"password"}
process_id=${ARG_PID:-"12345"}
try_no=${ARG_TRYNO:-"1"}
meter_name=${ARG_METER_NAME:-"METER"}
meter_value=${ARG_METER_NAME:-"10"}

payload=$(meter_payload $path_to_task $password $process_id $try_no $meter_name $meter_value)
echo "$payload"