github.com/upcmd/up@v0.8.1-0.20230108151705-ad8b797bf04f/tests/functests/c0098.yml (about)

     1  doc_meta: |
     2    folder: dvars
     3    title: datapath
     4    head: |
     5      Other than use datakey as data source for dvar rending, you can use datapath to reference to a varname and a sub element of a var in global runtime scope
     6  
     7    sections:
     8      - title: How to use
     9        content: |
    10          * datapath:
    11            format is like a.b.c(name=fr*).value, following the yq path format:
    12  
    13            1. 'a.b.c'
    14            2. 'a.*.c'
    15            3. 'a.**.c'
    16            4. 'a.(child.subchild==co*).c'
    17            5. 'a.array[0].blah'
    18            6. 'a.array[*].blah'
    19  
    20      - title: Relavant
    21        content: templating using datakey and datapath
    22        refs:
    23          - title: use datakey and datapath in templating
    24            link: ../../dvars/c0096
    25  
    26      - title: query and yq datapath
    27        content: query details
    28        refs:
    29          - title: query object
    30            link: ../../object-oriented/c0100
    31  
    32      - title: Demo
    33        log: yes
    34  
    35    related:
    36      refs:
    37        - title: yq and yq path reference
    38          link: https://github.com/mikefarah/yq
    39  
    40  notes:
    41    goal:
    42      - showcase the dvar to render value using sub element of an var rather the global var name space
    43      - extension to c0082
    44  
    45  vars:
    46    student:
    47      name: Tom
    48      gender: Male
    49      school: Sydney Grammar
    50    nsw:
    51      sydney:
    52        sgschool:
    53          student:
    54            name: Tom
    55            gender: Male
    56            school: Sydney Grammar
    57    aaa: aaa
    58    datapointer: student
    59  
    60  tasks:
    61    -
    62      name: task
    63      task:
    64        -
    65          func: cmd
    66          desc: use sub element of an var as context to render values
    67          dvars:
    68            - name: student_info
    69              value: 'my name is:{{.name}} and I am in {{.school}}'
    70              datapath: nsw.sydney.sgschool.student
    71              flags: [vvv]
    72          do:
    73            - name: print
    74              cmd: '{{.student_info}}'